python3.5.1,删除modu时全局变量不被破坏

2024-09-26 18:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个正在加载python35.dll的应用程序。使用python API PyImport_AddModule运行py文件。并使用PyDict_DelItemString删除模块。在py文件中有一个全局可用的。调用PyDict_DelItemString删除模块时,不会销毁全局变量。调用Py_Finalize时,全局变量被销毁。太晚了。导致内存泄漏。因为Py_Initialize是在应用程序启动时调用的,所以Py_Finalize是在应用程序关闭时调用的。在

但是python33.dll是可以的,当调用PyDict_DelItemString删除模块时,可以销毁全局变量。在

如何解决问题?有解决办法吗?我需要使用python35.dll,并希望在调用PyDict_DelItemString删除模块时,可以自动释放模块中的全局变量。在

下面是python测试代码:

class Simple:  
     def __init__( self ):  
         print('Simple__init__')
     def __del__( self ):  
         print('Simple__del__') 

simple = Simple()

Tags: 模块文件pyself应用程序initdefsimple

热门问题