如何在Python3中获得PyObject的字符串表示?

2024-09-27 23:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调试Python源代码(cpython3.4)。我收到一个PyObject*。我想printf它。在

例如(来自python3.4源代码的Objects/floatobject.c):

PyObject *o_ndigits = NULL;
Py_ssize_t ndigits;

x = PyFloat_AsDouble(v);
if (!PyArg_ParseTuple(args, "|O", &o_ndigits))
    return NULL;

我该怎么做?它几乎和这个问题一样:Python: get string representation of PyObject?,但对于Python3。对于原始解,我得到了"undefined reference to PyString_AsString"错误。在


Tags: pyifobjects源代码argsnullpyobjectndigits
1条回答
网友
1楼 · 发布于 2024-09-27 23:21:54

PyObject_ReprPyObject_ASCII都返回对象的unicodestr表示。如果您的终端不使用UTF-8,您可能需要ASCII转义表示。获取带有PyUnicode_AsUTF8^{}的多字节字符串。3.3中的新实现缓存UTF-8字节字符串,因此在打印后不要释放它。在

至于PyString_AsString,对于3.xbytes类型,它变成了PyBytes_AsString或{}。在

相关问题 更多 >

    热门问题