小编典典

Python:获取PyObject的字符串表示形式?

python

我有一个C python扩展名,我想打印一些诊断信息。

我收到一个字符串作为PyObject *。

获取此对象的字符串表示形式(使其可用作const char *)的规范方法是什么?

更新: 澄清以强调访问为const char *。


阅读 367

收藏
2021-01-20

共1个答案

小编典典

使用PyObject_Repr(模仿Python的repr函数)或PyObject_Str(模仿str),然后调用PyString_AsStringget
char *(您可以并且通常应该将其用作const char*,例如:

PyObject* objectsRepresentation = PyObject_Repr(yourObject);
const char* s = PyString_AsString(objectsRepresentation);

任何人都可以使用此方法PyObject。如果您完全确定yourObject是Python字符串而不是其他字符串(例如数字),则可以跳过第一行,然后执行以下操作:

const char* s = PyString_AsString(yourObject);
2021-01-20