Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在CPython扩展模块中清理静态python对象引用的正确方法是什么?_Python_Cpython_Python C Extension - Fatal编程技术网

什么';在CPython扩展模块中清理静态python对象引用的正确方法是什么?

什么';在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

CPython头定义了一个宏,用于声明在导入时运行以初始化模块的方法:
PyMODINIT\u FUNC


我的初始值设定项创建对其他python对象的引用,在卸载模块时,确保这些对象正确清理/取消引用的最佳方法是什么?

您根本无法卸载C扩展模块。根本没有办法做到这一点,而且我确信,如果出现泄漏,大多数标准扩展模块都会疯狂泄漏。

谢谢您的提示。进一步挖掘,它看起来(实现的)PEP 3121()明确地记录了这个问题,并在PyModuleDef中提出了
m_clear
m_free
字段,以解决python 3中的问题