Python - 尝试删除大量变量 - 现有变量和非现有变量

时间:2016-12-14 08:27:27

标签: python garbage-collection nonetype del

当我的脚本执行结束时,我希望100%确保删除所有变量/垃圾收集器将释放我的内存。

del允许我删除任意数量的变量,以逗号分隔。例如,要删除a,b和c变量,我输入:

del a,b,c

但是,如果这些变量中的任何一个不存在,我会收到一个异常,并且似乎删除了那些变量(a,b,c)的 none

代码

所以我写了以下代码:

def tryToRemove(myArrayOfVariablesToRemove):
    # Sample usage: tryToRemove(['a','b'])
    if isinstance(myArrayOfVariablesToRemove, list):
        for i in myArrayOfVariablesToRemove:
            cmd = "del {0}".format(i)
            print(cmd)
            try:
                exec(cmd)
            except NameError:
                pass
    else:
        print("ERROR! Provided argument is *not* a list of variables to remove")

问题

我的代码似乎没有删除变量。 打字:

a = 3
b = [3,4,5]
tryToRemove(['a','b'])

在我的屏幕上打印:

del a
del b

但是当我键入a时,我收到'3',所以似乎没有删除变量。

0 个答案:

没有答案