2017-04-07 1 views
1

Ich habe die folgende Python-Anweisungx hat Funktion geben, aber Aufruf x gibt einen Typfehler Python3

x = lambda :8() 

die Art der x Überprüfung gibt die folgende

<class 'function'> 

aber dann tun diese

x() 
TypeError: 'int' object is not callable 

Ich kann dies lösen, indem Sie Klammern um das Lambda wie

setzen
x = (lambda :8)() 

Aber ich frage mich, was los ist.

+2

Warum machst du das? Experimentierst du nur oder ist hier ein Ziel? –

+0

Ja, nur experimentieren :) –

Antwort

1

Das Problem liegt nicht beim Aufruf x, Sie versuchen, 8 mit 8() aufrufen. Der Aufruf einer ganzen Zahl führt zu einem Fehler, da Instanzen von int nicht aufrufbar sind.

Ich kann dies lösen, indem sie wie so Klammer um die Lambda setzen

Was Sie mit x = (lambda :8)() tun, ist eine anonyme Funktion erstellen, die immer die Nummer 8 zurückgibt, es nennen, und weisen Sie den Namen x auf den Rückgabewert.

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

jedoch x() noch einen Fehler erhöhen, weil wieder eine ganze Zahl zu nennen es versucht.

>>> x() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not callable 
Verwandte Themen