1
我有A类包裹着foo方法实现并采用延长%:的Python痛饮包装:如何访问底层的PyObject
类A { ... %延长{ 无效美孚(){ 自我 - > foo_impl(); } }
现在我想增加ref计数到foo_impl里面的一个A,但是我只有A *(as self)。
问题:如何编写/包装函数foo,以便我既可以访问A *,也可以访问底层PyObject *?
谢谢
我有A类包裹着foo方法实现并采用延长%:的Python痛饮包装:如何访问底层的PyObject
类A { ... %延长{ 无效美孚(){ 自我 - > foo_impl(); } }
现在我想增加ref计数到foo_impl里面的一个A,但是我只有A *(as self)。
问题:如何编写/包装函数foo,以便我既可以访问A *,也可以访问底层PyObject *?
谢谢
我认为这是不可能的。如果你需要增加refcount,那是因为你不希望C++对象在超出作用域时被销毁,因为在其他地方有一个指向该对象的指针。在这种情况下,查看使用DISOWN typemap来确保目标语言不认为它拥有C++对象,因此它不会被销毁。
可以有多个底层'PyObject'指向相同的C++对象。你可以得到* a *'PyObject'([example](http://stackoverflow.com/a/5849116/168175)),但它不会是*'PyObject'。 – Flexo 2012-04-02 13:40:10