4

Pythonでは、del xまたはdel(x)のいずれかを呼び出すことができます。delF(x)という関数を定義する方法は知っていますが、パラメーターとしてタプルを使用せずに、のように呼び出すことができる関数を定義する方法がわかりません。

F xとの違いは何F(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 に答える