如何清除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