我将Python中的一些弱参数传递给C ++类,但是当真实对象已经死亡时,C ++析构函数正在积极尝试访问ref,显然它崩溃了......
是否有任何Python C / API方法可以确定Python引用是否仍处于活动状态或其他任何已知的解决方法?
由于
答案 0 :(得分:3)
来自Python C API文档:
PyObject * PyWeakref_GetObject(PyObject * ref)
返回值:借用参考。
从弱引用返回引用的对象,ref。如果指称 不再存在,返回无。 2.2版中的新功能。
答案 1 :(得分:2)
如果你在弱引用上调用PyWeakref_GetObject,它应该返回Py_None或NULL,我忘记了哪一个。但你应该检查它是否正在返回其中一个,这将告诉你引用的对象不再存在。