有没有一种方法可以将新类实例(继承 c++ 类的 python 类)转移到 c++ 而不必保留对象返回并将其视为 c++ 指针。
例如:
C++
object pyInstance = GetLocalDict()["makeNewGamePlay"]();
CGEPYGameMode* m_pGameMode = extract< CGEPYGameMode* >( pyInstance );
python :
class Alpha(CGEPYGameMode):
def someFunct(self):
pass
def makeNewGamePlay():
return Alpha()
pyInstance 是 python 类实例,m_pGameMode 是指向同一实例的 c++ 基类的指针。但是,如果我存储指针并让对象超出范围,则 python 对象将被清理。有什么方法可以只使用 c++ 指针而不清理对象吗?
最佳答案
您必须增加 reference count的实例。这将防止 Python 删除它。当您准备好删除它时,只需减少引用计数,Python 就会为您清理它。
关于c++ - 在 C++ 中停止 python 对象超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361028/