variable validate not none python nonetype

validate - El objeto NoneType de Python no es invocable(principiante)



python null variable (3)

¿Por qué me da ese error?

Debido a que su primer parámetro que pasa a la función de loop es None pero su función está esperando un objeto que se puede llamar, y el objeto None no.

Por lo tanto, debe pasar el objeto callable que es, en su caso, el objeto de función hi .

def hi(): print ''hi'' def loop(f, n): #f repeats n times if n<=0: return else: f() loop(f, n-1) loop(hi, 5)

Me dice la línea 1 y la línea 5 (nuevo en la depuración / programación, no estoy seguro de si eso ayuda)

def hi(): print ''hi'' def loop(f, n): #f repeats n times if n<=0: return else: f() loop(f, n-1) loop(hi(), 5) hi TypeError: ''NoneType'' object is not callable

¿Por qué me da ese error?


Desea pasar el objeto de función hi a su función loop() , no el resultado de una llamada a hi() (que es None porque hi() no devuelve nada).

Así que prueba esto:

>>> loop(hi, 5) hi hi hi hi hi

Quizás esto te ayude a entender mejor:

>>> print hi() hi None >>> print hi <function hi at 0x0000000002422648>


No debe pasar la función de llamada hi () a la función loop (). Esto dará el resultado.

def hi(): print(''hi'') def loop(f, n): #f repeats n times if n<=0: return else: f() loop(f, n-1) loop(hi, 5) # Do not use hi() function inside loop() function