您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

如何清除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 2022/1/1 18:31:51 有391人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶