什么';在CPython扩展模块中清理静态python对象引用的正确方法是什么?
CPython头定义了一个宏,用于声明在导入时运行以初始化模块的方法:什么';在CPython扩展模块中清理静态python对象引用的正确方法是什么?,python,cpython,python-c-extension,Python,Cpython,Python C Extension,CPython头定义了一个宏,用于声明在导入时运行以初始化模块的方法:PyMODINIT\u FUNC 我的初始值设定项创建对其他python对象的引用,在卸载模块时,确保这些对象正确清理/取消引用的最佳方法是什么?您根本无法卸载C扩展模块。根本没有办法做到这一点,而且我确信,如果出现泄漏,大多数标准扩展模块都会疯狂泄漏。谢谢您的提示。进一步挖掘,它看起来(实现的)PEP 3121()明确地记录了这个问题,并在PyModuleDef中提出了m_clear和m_free字段,以解决python 3
PyMODINIT\u FUNC
我的初始值设定项创建对其他python对象的引用,在卸载模块时,确保这些对象正确清理/取消引用的最佳方法是什么?您根本无法卸载C扩展模块。根本没有办法做到这一点,而且我确信,如果出现泄漏,大多数标准扩展模块都会疯狂泄漏。谢谢您的提示。进一步挖掘,它看起来(实现的)PEP 3121()明确地记录了这个问题,并在PyModuleDef中提出了
m_clear
和m_free
字段,以解决python 3中的问题