2015-08-17 18 views
9

O ile mogę powiedzieć, zarówno del a, jak i del(a) wydaje się działać z tym samym efektem. Jeśli tak, to dlaczego Python zezwalałby del na istnienie zarówno jako instrukcji, jak i funkcji?Python: Czy jest jakaś różnica między "del a" i "del (a)"?

+5

Nawiasy nie zawsze oznaczają funkcje. Możesz także wykonać '1+ (2)', ale to nie znaczy, że '1 +' jest funkcją. – JJJ

+4

To pytanie nie jest ani niejasne, ani zbyt szerokie, to po prostu nieporozumienie na temat roli nawiasów w gramatyce Pythona, która nie jest szalona od początkującego. – DSM

Odpowiedz

12

del jest zawsze oświadczeniem. Używanie nawiasu nie oznacza, że ​​wykonujesz wywołanie funkcji, ale grupujesz wyrażenia. (1) jest taki sam jak 1.

+0

I, oczywiście, "(a)" jest również tym samym, co "a". Odnosząc się do opisu OP. –

+0

@MarkusMeskanen Oczywiście, dzięki! – cdonts

0

Dzięki komentarzowi @Juhana i odpowiedzi @cdonts. Podobno nawiasy tutaj nie reprezentują wywołania funkcji. Oto kolejny przykład:

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 
Powiązane problemy