【发布时间】:2016-03-18 19:55:50
【问题描述】:
我有一个 PyUnicode 对象,我正在尝试将其转换回 C 字符串 (char *)。
我尝试这样做的方式似乎不起作用。这是我的代码:
PyObject * objectCompName = PyTuple_GET_ITEM(compTuple, (Py_ssize_t) 0);
PyObject * ooCompName = PyUnicode_AsASCIIString(objectCompName);
char * compName = PyBytes_AsString(ooCompName);
Py_DECREF(ooCompName);
还有其他/更好的方法我应该这样做吗?
【问题讨论】:
-
定义“似乎不起作用”。你会崩溃吗?结果与您想要的不同?无论哪种情况,究竟是什么?
-
您使用的是哪个版本的 Python?
-
@JohnBollinger 它到达这里时会出现段错误。 Python 3.
-
对我的问题和答案都投反对票的任何理由?
-
您不会检查 API 调用的返回值,也不会测试是否引发了异常。这将是一个很好的起点。
标签: python c python-3.x python-c-api python-internals