Ho una piccola domanda sulla variabile statica e su TypeObjects. Io uso l'API C per avvolgere un oggetto C++ (chiamiamolo Acpp) che ha una variabile statica chiamata x. Chiamiamo mia TypeObject A_Object:API Python C++: "Variabile statica" per un oggetto tipo
typedef struct {
PyObject_HEAD
Acpp* a;
} A_Object;
Il TypeObject è attaccato al mio modulo python "myMod" come "A". Ho definito getter e setter (tp_getset) in modo che io possa accedere e modificare la variabile statica di ACPP in pitone:
>>> 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 !
questa soluzione funziona, ma non è davvero "pulito". Vorrei accedere alla variabile statica in Python utilizzando il TypeObject e non le istanze:
>>> import myMod
>>> myMod.A.x = 34 # what I wish...
Qualcuno ha un'idea di aiutarmi?
Grazie in anticipo.
Grazie per la risposta. Penso di poter effettivamente risolvere il mio problema aggiungendo un campo a tp_dict dopo la chiamata a PyType_Ready. – ThR37