¿Cómo entender lambda x:lambda :x**2 en Python?
También encontré este problema y lo estudié detenidamente, y ahora surge el problema.
Esta es una expresión lambda y el valor de retorno es una función lambda. Deberías entenderlo así:
lambda x: (lambda: x**2),
Estas son dos funciones lambda anidadas. La primera lambda toma x como entrada y devuelve lambda. : x**2,
La segunda lambda no tiene entrada y devuelve x**2, donde la x devuelta proviene del segundo cierre de la expresión lambda (puede entenderse como el primer espacio de función de expresión lambda de la fórmula).
Puede ser más fácil de entender si está escrito como un método funcional.
def lambda1(x):
def lambda2():
devuelve x**2
devuelve lambda2
Este tipo de función anidada se usa a menudo en decoradores o programación funcional. La situación que encontré fue la de mantener los cierres.