如何在嵌入式Python脚本的错误消息中打印PyObject的类型?

2024-09-27 07:25:23 发布

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

<>我的C++代码中有这样的检查:

if (1 != PyString_Check( key ))

我想得到一个实际类型的“char*”,以便提供更有用的错误消息。使用Python的capi,我将如何做到这一点?在


Tags: key代码消息类型ifcheck错误char
2条回答

在Python2.6中,有a macro, ^{},它应该用来访问PythonObject的类型对象。然后可以获取包含类型的完全限定名的^{} field。这意味着对象obj的类型可以作为一个C-string来获取:

const char* p = Py_TYPE(obj)->tp_name;
PyTypeObject* type = key->ob_type;
const char* p = type->tp_name;
std::cout << "My type is " << p << std::endl;

相关问题 更多 >

    热门问题