Ich habe eine kleine Frage über statische Variable und TypeObjects. Ich benutze die API C, um ein C++ - Objekt (nennen wir es Acpp), die eine statische Variable namens x hat. Nennen wir meine Typeobject A_Object:Python API C++: "Statische Variable" für ein Type Object
typedef struct {
PyObject_HEAD
Acpp* a;
} A_Object;
Die Typeobject zu meinem Python-Modul "mymod" als "A" angebracht ist. Ich habe Getter und Setter (tp_getset) definiert, so dass ich zugreifen kann und die statische Variable von ACPP aus Python ändern:
>>> import myMod
>>> myA1 = myMod.A(some args...)
>>> myA1.x = 34 # using the setter to set the static variable of Acpp
>>> myA2 = myMod.A(some other args...)
>>> print myA2.x
34
>>> # Ok it works !
Diese Lösung funktioniert, aber es ist nicht wirklich „clean“. Ich mag die statische Variable in Python zugreifen, indem Sie den Typeobject verwenden und nicht die Instanzen:
>>> import myMod
>>> myMod.A.x = 34 # what I wish...
Hat jemand eine Idee, mir zu helfen?
Vielen Dank im Voraus.
Vielen Dank für Ihre Antwort. Ich denke, dass ich tatsächlich mein Problem lösen kann, indem ich nach dem Aufruf von PyType_Ready ein Feld zu tp_dict hinzufüge. – ThR37