Rug*_*rra 5 c python python-module global-variables python-c-api
我正在使用 C API 为 Python 开发一个模块。如何创建一个在 Python 中被视为全局的变量?
例如,如果我的模块是module,我想创建一个g执行此任务的变量:
import module
print module.g
Run Code Online (Sandbox Code Playgroud)
尤其,g是一个整数。
PyObject *m = Py_InitModule("mymodule", mymoduleMethods);
PyObject *v = PyLong_FromLong((long) 23);
PyObject_SetAttrString(m, "g", v);
Py_DECREF(v);
Run Code Online (Sandbox Code Playgroud)
您可以在模块的初始化例程中使用PyObject_SetAttrString ,第一个参数是模块o(的转换),第二个参数是“g”,第三个参数是变量(PyObject*)attr_namev
PyObject *v = PyLong_FromLong((long) 23);
Run Code Online (Sandbox Code Playgroud)
(当然或者任何其他值,23只是一个例子!-)。
请记得v事后 decref。
还有其他方法,但这个方法简单且通用。