我有一个Python脚本,可以通过__import__
按名称导入一系列其他Python脚本,然后调用脚本的main
函数。每次导入完成后,我想回收脚本分配的任何内存,因为其中一些内存结构创建大型内存结构(我不能控制全局部分。)
我的方法是简单地遍历vars()
并删除每个非私有变量,因此:
for m in ['imp1', 'imp2', 'imp3']:
this_mod = __import__(m)
this_mod.main()
# delete the module's globals
mvars = [ i for i in vars(this_mod) if not i.startswith('__') ]
for var in mvars:
delattr(this_mod, var)
这是一种合理的做法和/或是否有任何我应该注意的问题?