为什么这段代码按照它的方式工作?
x = 3
print(dir()) #output indicates that x is defined in the global scope
del (x)
print(dir()) #output indicates that x is not defined in the global scope
我的理解是del
是Python中的关键字,del
后面的内容应该是名称。 (name)
不是名字。为什么该示例似乎表明del (name)
与del name
的工作方式相同?
答案 0 :(得分:5)
del
statement的定义是:
del_stmt ::= "del" target_list
以及target_list
的定义:
target_list ::= target ("," target)* [","]
target ::= identifier
| "(" target_list ")"
| "[" [target_list] "]"
| ...
您可以看到目标列表周围的括号是允许的。
例如,如果您定义x,y = 1,2
,则允许所有这些并且具有相同的效果:
del x,y
del (x,y)
del (x),[y]
del [x,(y)]
del ([x], (y))