如何在嵌入式 Python 脚本的错误消息中打印 PyObject 的类型
How can I print the type of a PyObject in an error message for an embedded Python script?
我的C++代码中有这个检查:
if (1 != PyString_Check( key ))
我想获得它实际类型的"char*",以便提供更有用的错误消息。使用 Python 的 C API,我将如何做到这一点?
PyTypeObject* type = key->ob_type;
const char* p = type->tp_name;
std::cout << "My type is " << p << std::endl;
从 Python 2.6 开始,有一个宏 Py_TYPE
,应该用来访问PythonObject
的类型对象。然后,您可以获取包含该类型的完全限定名称的tp_name
字段。这意味着对象obj
的类型可以作为 C 字符串获取,如下所示:
const char* p = Py_TYPE(obj)->tp_name;
相关文章:
- 在线编译器中的分段C++没有打印消息
- 为什么没有打印错误消息
- 从函数打印 CLI 帮助消息后,我应该如何干净地退出 C++ 程序?
- 奇怪的消息 (_Base_bitset::_M_do_to_ulong) 从溢出异常处理程序中打印出来
- QMqtt订阅者不打印收到的消息
- 打印窗口发送消息WM_PAINT或WM_PRINT
- QT打印二进制树指令消息
- 为什么在打印消息时名称会打印两次?
- Android Studio,CMake.如何在编译时打印调试消息
- 如何将消息发送到缓冲区并反向打印前三个单词的消息
- C++代码在 Gedit 中有效,但在 VS 中不起作用(它只是打印"按任意键退出......"。消息)
- 打印向量元素错误消息
- 我可以在 Xcode 的消息/警告中打印出预处理器值吗?
- C++ 仅搜索一次矢量时打印出"not found"消息
- Electron-无日志消息由C++文件中的log(INFO)打印
- 在c++中,当我使用具有cout的函数时,如何避免打印消息
- 如何使用带2个参数的void函数多次打印消息
- C++-创建虚拟函数以打印调试消息的最佳方式
- 如果我没有收到来自客户端的消息,如何每 20 秒打印一次日期时间
- 通过杂注消息打印基于其他宏的定义数值?