如何清除Python脚本中间的所有变量?

我正在寻找与Matlab中的“清除”类似的东西:一种命令/函数,该命令/函数从工作区中删除所有变量,并将其从系统内存中释放出来。Python中有这样的事情吗?

编辑:我想写一个脚本,在某个时候清除所有变量。

回答:

以下命令序列确实从当前模块中删除了 名称:

>>> import sys

>>> sys.modules[__name__].__dict__.clear()

我怀疑您是否确实想这样做,因为“每个名称”都包含所有内置函数,因此在完全清除之后您无能为力。记住,在Python中,实际上没有“变量”之类的东西-

有很多种类的 对象 (包括模块,函数,类,数字,字符串等),而有 名称

绑定到对象;该序列的作用是从模块中删除每个名称(当且仅当对它们的每个引用都已被删除时,相应的对象才会消失)。

也许您想更具选择性,但是除非您想更加具体,否则很难确切猜出您的意思。但是,仅举一个例子:

>>> import sys

>>> this = sys.modules[__name__]

>>> for n in dir():

... if n[0]!='_': delattr(this, n)

...

>>>

此序列仅保留私人名称或魔术__builtins__名称,包括包含所有内置名称的特殊名称。因此,内置程序仍然有效-例如:

>>> dir()

['__builtins__', '__doc__', '__name__', '__package__', 'n']

>>>

如您所见,名称n(该变量中的控制变量for)也会碰巧缠住(因为它for每次都会在子句中重新绑定),因此最好为该控制变量命名_(例如,清楚地显示“它是特殊”(此外,在交互式解释器中,_在提示符处输入的每个完整表达式后,名称都会重新绑定到该表达式的值,因此不会持续很长时间;-)。

无论如何,一旦你已经确定到底是什么 你想做的事,这不是很难定义的功能为目的,并把它放在你的启动文件(如果你只在互动环节希望它)或网站-

自定义文件(如果您想在每个脚本中使用它)。

以上是 如何清除Python脚本中间的所有变量? 的全部内容, 来源链接: utcz.com/qa/403285.html

回到顶部