4

在 Python 中,可以调用其中之一del x或 del (x) 。我知道如何定义一个名为 F(x) 的函数,但我不知道如何定义一个名为 like 的函数del,而没有元组作为参数。

和之间有什么区别F xF(x)如何定义可以不带括号调用的函数?

>>> a = 10
>>> a
10
>>> del a             <------------ can be called without parenthesis
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> a = 1
>>> del (a)
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> def f(x): 1
... 
>>> f (10)
>>> print f (10)
None
>>> def f(x): return 1
... 
>>> print f (10)
1
>>> f 1                  <------   cannot be called so
  File "<stdin>", line 1
    f 1
      ^
SyntaxError: invalid syntax
>>> 
4

1 回答 1

9

主要原因是它del实际上是一个语句,因此在 Python 中具有特殊行为。因此,您实际上无法自己定义这些(以及这种行为)* - 它是一组保留关键字的语言的内置部分。

**我想您可能会编辑 Python 本身的源代码并构建自己的源代码,但我认为这不是您所追求的 :)*

于 2013-01-17T01:47:18.747 回答