所以我用globals()
打,并试图此:如何删除全局变量字典?
del globals()
日期:
SyntaxError: can't delete function call
如何删除全局变量的词典吗?它是否只能通过函数调用访问,以至于无法删除?
编辑:我知道这是一个坏主意,我不打算使用它。我只想知道这是否可能,如果不是,我想知道为什么。
所以我用globals()
打,并试图此:如何删除全局变量字典?
del globals()
日期:
SyntaxError: can't delete function call
如何删除全局变量的词典吗?它是否只能通过函数调用访问,以至于无法删除?
编辑:我知道这是一个坏主意,我不打算使用它。我只想知道这是否可能,如果不是,我想知道为什么。
删除对globals()
的引用将不会删除该字典。您可以像这样清除字典
globals().clear()
但天知道那是什么用途。
仍然有很多方法可以解决没有全局()
如
object = 0 .__class__.__mro__[1]
谢谢!你能否就最后一行提供一些解释? – 2014-09-22 11:02:11
不能删除全球范围内,但你可以明确它:
x = 1
globals().clear()
x
#>>> Traceback (most recent call last):
#>>> File "", line 21, in <module>
#>>> NameError: name 'x' is not defined
一个警告,虽然:无论你正在试图做的是说错话,你应该做的事情其他。
+1为警告 – 2014-09-22 11:03:39
你的德尔蟒蛇错误的概念。删除引用,而不是对象。 – simonzack 2014-09-22 10:33:13
为什么要“删除全局变量字典”?你的意思是什么? – interjay 2014-09-22 10:40:25
@interjay:知识,没有别的:) – 2014-09-22 10:55:26