4

我正在使用 C API 为 Python 开发一个模块。如何创建一个被 Python 视为全局的变量?

例如,如果我的模块是module,我想创建一个变量g来完成这项工作:

import module
print module.g

尤其g是整数。

Alex Martelli 的解决方案

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

PyObject_SetAttrString(m, "g", v);
Py_DECREF(v);
4

1 回答 1

4

您可以在模块的初始化例程中使用PyObject_SetAttrStringo ,第一个参数是(转换(PyObject*)为)您的模块,第二个参数attr_name是“g”,第三个参数v是一个变量

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

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

记得之后去decref v

还有其他方法,但这种方法简单而通用。

于 2010-06-08T21:10:52.090 回答