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

发布于 2021-01-29 15:07:24

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

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

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

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

关注者
0
被浏览
132
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用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);
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看