我正在使用 Python C API 并尝试创建一个函数,该函数将分配 PyTypeObjects 的新实例以在多个 C++ 类中使用。这个想法是每个类都有一个指向 PyTypeObject 的指针,它将被这个工厂实例化。指针必须是静态的。但是,我对这种方法有疑问。
- 在包含指向 PyTypeObject 的指针的类中,当我尝试将该静态变量设置为等于工厂函数的结果(在另一个类中但是静态的)时,我得到“未定义的引用”链接器错误。我想这是有道理的,因为该功能要到运行时才会发生,但我不知道另一种方法可以做到这一点。
- 我不知道如何动态设置 PyTypeObject 字段,因为第一个字段始终是一个宏:PyObject_VAR_HEAD。
希望这是有道理的。基本上,我试图让几个类不必静态地重新定义 PyTypeObject,而是可以从工厂函数实例化它们的 PyTypeObject 变量。