2011-06-13 4 views
1

PyObjectPyBindGen 만든, 그냥 구조체에 obj 멤버를 사용, 랩 된 C++ 객체에 대한 포인터를 쉽게 얻을 :의 난 그냥 MyWrappedClass*을하고 싶어한다고 가정 해 봅시다 그러나주어진 C++ 포인터에 대해 PyBindGen PyObject를 얻는 방법은 무엇입니까? 주어

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

그것을 감싸는 PyObject (있는 경우)이 존재하지 않을 수 있습니다. 자신의 백 포인터 사전을 유지하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

+0

'MyWrapperClass'에 포인터를 따라'PyMyWrappedClass'에 저장하지 않으시겠습니까? – Constantinius

+0

래퍼에 대한 지식으로 클래스에 부담을주지 않는 것을 선호합니다. 나는 수백 개의 래핑 된 클래스를 가질 것입니다. 그래서 각각의 클래스보다는 어떤 클래스에서도 작동하는 메커니즘을 원합니다. 따라서 해시 나 맵 또는 포인터를 PyObjects로 유지하는 것. –

답변

-1

내가 PyBindGen에 익숙하지 않은만큼 충분히 평판을 얻었다면 이것을 덧붙였을 것이지만 inst_dict은 backpointers (이름에서 알 수 있듯이) 사전이 아니라면 내가 운이 좋았다고 생각한다. 파이썬 힙을 트롤링하여 클래스의 인스턴스가 있는지보기를 원하지 않는다면).

관련 문제