Je développe un module pour Python en utilisant une API C. Comment puis-je créer une variable considérée comme globale à partir de Python?Définir un global dans un module Python à partir d'une API C
Par exemple, si mon module est module
, je veux créer une g
variable qui fait ce travail:
import module
print module.g
En particulier, g
est un entier.
Solution de Alex Martelli
PyObject *m = Py_InitModule("mymodule", mymoduleMethods);
PyObject *v = PyLong_FromLong((long) 23);
PyObject_SetAttrString(m, "g", v);
Py_DECREF(v);
merci, pouvez-vous vérifier la solution complète que je signale dans la question? –
@wiso, oui, ces 4 lignes étaient exactement ce que j'avais en tête (sauf que vous appelez l'attribut "L" dans l'édition et c'est "g" ci-dessus dans la question originale, mais c'est sans doute juste un oubli). –