如何通过C API在Python类中创建静态变量?

时间:2009-12-23 11:59:21

标签: python c

我想做相同的

class Foo(object):
  bar = 1

使用Python的C API。换句话说,我想使用C。

创建一个具有静态变量的Python类

我该怎么做?

2 个答案:

答案 0 :(得分:5)

发现它!这只是设置类型对象的tp_dict元素并为每个静态变量填充添加条目的问题。以下C代码创建与上述Python代码相同的静态变量:

PyTypeObject type;
// ...other initialisation...
type.tp_dict = PyDict_New();
PyDict_SetItemString(type.tp_dict, "bar", PyInt_FromLong(1));

答案 1 :(得分:2)

您可以使用适当的标记将该源代码传递给Py_CompileString

如果您已经上课,可以使用PyObject_SetAttr