2011-06-13 52 views
1

鑑於PyObject通過PyBindGen創建的,它很容易得到的指針被包裝的C++對象,只需使用obj成員的結構:如何獲得給定C++指針的PyBindGen PyObject?

typedef struct { 
    PyObject_HEAD 
    MyWrappedClass *obj; 
    PyObject *inst_dict; 
    PyBindGenWrapperFlags flags:8; 
} PyMyWrappedClass; 

但是,讓我們說我剛纔MyWrappedClass*,並希望得到包含它的PyObject(如果有的話,它可能不存在)。有沒有辦法做到這一點,而不需要維護我自己的後向詞典?

+0

爲什麼不在'MyWrapperClass'中保存一個指針到'PyMyWrappedClass'? – Constantinius 2011-06-13 19:04:51

+0

我寧願不用包裝知識來加重班級負擔。我將會有數百個包裝類,所以我不希望每個人都有醫生,我想要一個適用於任何類的機制。因此保留一個哈希值或映射或指向PyObjects的指針。 – 2011-06-13 21:19:41

回答

-1

如果我對PyBindGen不熟悉,但我有足夠的聲譽,但是我會添加這個評論,但除非inst_dict是一個反向詞典(正如名稱可能暗示的),我認爲你運氣不好除非你想通過Python堆來查看是否有你的類的任何實例)。