我开发用于使用C API的Python的模块。如何创建一个被看作从Python的全局变量?

例如,如果我的模块是module,我想创建一个变量g做这件工作:

import module
print module.g

在特别地,g是整数。

解决方案从亚历泰利

PyObject *m = Py_InitModule("mymodule", mymoduleMethods);
PyObject *v = PyLong_FromLong((long) 23);

PyObject_SetAttrString(m, "g", v);
Py_DECREF(v);
有帮助吗?

解决方案

您可以使用 PyObject_SetAttrString 在你的模块的初始化程序,有第一个参数o感(铸造到的(PyObject*))你的模块,第二个参数是attr_name“G”,第三个参数是v可变

PyObject *v = PyLong_FromLong((long) 23);

(或任何其他当然值,23只是一个例子! - )。

千万记得要decref v算账。

有其他的方法,但是这是一个简单的和一般性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top