删除导入的python模块中的所有用户定义的全局变量

时间:2014-03-24 19:52:14

标签: python variables module

我有一个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)

这是一种合理的做法和/或是否有任何我应该注意的问题?

0 个答案:

没有答案
相关问题