如何通过C API在Python类中创建静态变量?
我想用Python的C接口做一个类似的事情:
class Foo(object):
bar = 1
换句话说,我想用C语言创建一个Python类,并且这个类里有一个静态变量。
我该怎么做呢?
2 个回答
2
你可以把那段源代码传给 Py_CompileString,并加上合适的标志。
如果你已经有了这个类,可以使用 PyObject_SetAttr。
5
找到了!其实就是设置类型对象的tp_dict元素,然后为每个静态变量添加条目。下面的C代码创建了和上面Python代码一样的静态变量:
PyTypeObject type;
// ...other initialisation...
type.tp_dict = PyDict_New();
PyDict_SetItemString(type.tp_dict, "bar", PyInt_FromLong(1));