python - 有没有一种方法可以将 PyUnicodeObject 变量转换为 PyObject 类型?

标签 python python-3.x

需要将一个 PyUnicodeObject 值传递给 PyObject 变量。 有什么转换方法吗?

谢谢 卡诺尔

最佳答案

您可以为此在 C 代码中使用强制转换:

PyUnicodeObject *p = ...whatever...;
callsomefun((PyObject*)p);

所有各种特定的具体类型 PyWhateverObject 都可以被认为是“派生自”PyObject。现在 C 没有继承的概念,所以里面没有“派生”,但是 Python VM 非常简单地综合了它,通过确保每个这样的对象的第一个结构成员(或第一个成员的第一个成员,或者......)是一个PyObject 结构(有一个宏)。这保证了正常的 C 指针转换(尽管从技术上讲是“有风险的”,因为编译器无法检查正确性——如果您转换错误的东西,您将在运行时崩溃;-)在指向 PyObject 的指针之间正确使用时按预期工作以及指向特定的具体 Python 类型结构的任何指针。

关于python - 有没有一种方法可以将 PyUnicodeObject 变量转换为 PyObject 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2840144/

相关文章:

python - 为什么修改字典中的键也会修改分配给它们的数组? (Python)

python - 使用 gzip 优化上传到驱动器使用 API v3 Python 3

Python:删除集合中字符串的较长子字符串

python - fping 在 python3 中使用 IP 列表

python - Anaconda Python 3.5 安装 PyODBC

python - python3中如何重载Thread类的__init__函数?

python - 如何在 Jupyter Notebook 上的 python 中执行多处理任务后释放 RAM?

python - 在 python 中使用 xpath 查询从具有子节点的以下节点中选择整个文本

python - 安装 allennlp==0.3.0 时应该使用哪些版本的 sanic-cors、sanic 和 sanic-plugins-framework?

javascript - 为什么此请求不遵循我的 Tornado 重定向?