2015-08-17 42 views
9

据我所知,del adel(a)似乎都有相同的效果。如果是这样的话,为什么Python允许del作为语句和函数存在?Python:“del a”和“del(a)”之间是否有区别?

+5

括号并不总是表示函数。你也可以做'1+(2)',但这并不意味着'1+'是一个函数。 – JJJ

+4

这个问题既不清楚也不太宽泛,这只是对Python括号中的括号作用的误解,这并不是来自初学者的疯狂。 – DSM

回答

12

del总是一个声明。使用括号并不意味着你正在进行函数调用,但是你正在对表达式进行分组。 (1)1相同。

+0

很明显,“(a)”和“a”也是一样的。参考OP的expample。 –

+0

@MarkusMeskanen当然,谢谢! – cdonts

0

感谢@Juhana的评论和@cdonts的回答。显然这里的括号不代表函数调用。这里是另一个例子:

In [40]: a=b=c=1 
In [41]: del[a,(b,c)] 
In [42]: b 
Traceback (most recent call last): 
    File "<ipython-input-42-60b725f10c9c>", line 1, in <module> 
    b 
NameError: name 'b' is not defined 
相关问题