Python:获取PyObject的字符串表示形式?
我有一个C python扩展名,我想打印一些诊断信息。
我收到一个字符串作为PyObject *。
获取此对象的字符串表示形式(使其可用作const char *)的规范方法是什么?
更新: 澄清以强调访问为const char *。
-
使用
PyObject_Repr
(模仿Python的repr
函数)或PyObject_Str
(模仿str
),然后调用PyString_AsString
get
char *
(您可以并且通常应该将其用作const char*
,例如:PyObject* objectsRepresentation = PyObject_Repr(yourObject); const char* s = PyString_AsString(objectsRepresentation);
任何人都可以使用此方法
PyObject
。如果您完全确定yourObject
是Python字符串而不是其他字符串(例如数字),则可以跳过第一行,然后执行以下操作:const char* s = PyString_AsString(yourObject);