我有一個關於靜態變量和TypeObjects的小問題。 我使用API C來包裝一個名爲x的靜態變量的C++對象(我們稱之爲Acpp)。 讓我們打電話給我TypeObject A_Object:Python API C++:類型對象的「靜態變量」
typedef struct {
PyObject_HEAD
Acpp* a;
} A_Object;
的TypeObject連接到我的Python模塊 「myMod」 爲 「A」。我已經定義了getter和setter方法(tp_getset),這樣我就可以訪問和修改蟒ACPP的靜態變量:
>>> 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 !
此解決方案,但它不是真正的「乾淨」。我想通過TypeObject而不是實例訪問蟒蛇靜態變量:
>>> import myMod
>>> myMod.A.x = 34 # what I wish...
沒有任何人有一個想法,以幫助我嗎?
在此先感謝。
謝謝你的回答。我認爲我可以通過在調用PyType_Ready之後向tp_dict添加一個字段來解決我的問題。 – ThR37 2010-07-19 08:56:11