2017-04-07 8 views
1

を与える私はxの型をチェックし、次のPythonの文は、xの関数型を持つが、xを呼び出すと、型エラーのpython3

x = lambda :8() 

は、以下の

<class 'function'> 

を返しますが、その後

これをやってい
x() 
TypeError: 'int' object is not callable 

ラムダの周りに括弧を入れてこれを解決できます。

x = (lambda :8)() 

しかし、私は何が起こっているのだろうかと思っています。

+2

なぜあなたはこれをやっていますか?あなたは実験しているのですか、ここに目標がありますか? –

+0

はい、ただ実験しています:) –

答えて

1

xを呼び出しても問題がない場合は、88()と呼び出すことを試みています。 intのインスタンスは呼び出し不可能なため、整数を呼び出すとエラーが発生します。

私はあなたがx = (lambda :8)()でやっていることは、それを呼び出して、常に数8を返す無名関数を作成し、名前を割り当てているので、

のようにラムダの周りに括弧を置くことによってこの問題を解決することができますxを戻り値に設定します。再び、整数を呼び出そうとしているため

>>> x = (lambda :8)() 
>>> x 
8 

しかし、x()はまだエラーが発生します。

>>> x() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not callable 
関連する問題