有没有办法将新的类实例(继承c ++类的python类)转换为c ++而不必保留对象返回,只需将其视为c ++指针。
例如:
C ++
object pyInstance = GetLocalDict()["makeNewGamePlay"]();
CGEPYGameMode* m_pGameMode = extract< CGEPYGameMode* >( pyInstance );
pyth:
class Alpha(CGEPYGameMode):
def someFunct(self):
pass
def makeNewGamePlay():
return Alpha()
pyInstance是python类实例,m_pGameMode是指向同一实例的c ++基类的指针。但是,如果我存储指针并让对象超出范围,则会清除python对象。有没有办法只让c ++指针与对象进行清理?
答案 0 :(得分:2)
您必须增加pyInstance的reference count。这将阻止Python删除它。当您准备删除它时,您可以简单地减少引用计数,Python将为您清理它。