Entiendo cuáles son las funciones de lambda en Python, pero no puedo encontrar el significado de "vinculación de lambda" buscando en los documentos de Python. Un enlace para leer sobre él sería genial. Un ejemplo trivial explicado sería incluso mejor. Gracias.¿Qué es "binding lambda" en Python?
Respuesta
En primer lugar, una definición general:
Cuando se ejecuta una instrucción del programa o función , los valores actuales de parámetros formales se guardan (en la pila ) y dentro del alcance de la declaración , están vinculados a los valores de los argumentos reales realizados en la llamada. Cuando se sale de la instrucción , se restauran los valores originales de esos argumentos formales . Este protocolo es completamente recursivo. Si dentro de el cuerpo de un comunicado, algo está hecho que hace que los parámetros formales a estar unidos de nuevo, a los nuevos valores, los vinculante lambda-garantías esquema que Todo esto va a suceder en un manera ordenada.
Ahora, hay una excelente python example in a discussion here:
" ... sólo hay una unión para x
: hacer x = 7
sólo cambia el valor de la unión preexistente Por eso
def foo(x):
a = lambda: x
x = 7
b = lambda: x
return a,b
.
devuelve dos funciones que devuelven 7; si hubiera una nueva vinculación después del x = 7
, las funciones devolverían valores diferentes [asumiendo que no se llama a foo (7), por supuesto. También asumiendo nested_scopes] .... "
¿Dónde has visto la frase utilizada?
"Encuadernación" en Python se refiere generalmente al proceso por el que un nombre de variable termina apuntando a un objeto específico, ya sea por cesión o traspaso de parámetros o algún otro medio, por ejemplo:
a = dict(foo="bar", zip="zap", zig="zag") # binds a to a newly-created dict object
b = a # binds b to that same dictionary
def crunch(param):
print param
crunch(a) # binds the parameter "param" in the function crunch to that same dict again
Así lo haría ¿Adivina que "vinculación lambda" se refiere al proceso de vincular una función lambda a un nombre de variable, o tal vez vinculando sus parámetros con nombre a objetos específicos? Hay una muy buena explicación de la unión en la referencia del lenguaje, en http://docs.python.org/ref/naming.html
Nunca escuché ese término, pero una explicación podría ser el "hack de parámetro predeterminado" utilizado para asignar un valor directamente al parámetro de una lambda. Usando el ejemplo de Swati:
def foo(x):
a = lambda x=x: x
x = 7
b = lambda: x
return a,b
aa, bb = foo(4)
aa() # Prints 4
bb() # Prints 7
¿De dónde vino el 4? – mattbasta
+1: Estoy seguro de que esta información está en otros lugares, pero esto era exactamente lo que necesitaba ... ¡¡¡un gran abrazo !!! –
- 1. lambda devuelve lambda en python
- 2. ¿Qué es un Lambda?
- 3. ¿Qué es "Elevación Lambda"?
- 4. ¿Qué es un lenguaje lambda?
- 5. Growl Python binding with Click feedback?
- 6. Python lambda function
- 7. Python Lambda Problems
- 8. Entrevista: ¿Qué es la expresión lambda?
- 9. Python, lambda, busque mínimo
- 10. Son "{Binding Path =.}" Y "{Binding}" realmente iguales
- 11. Python: función Lambda en List Comprehensions
- 12. ¿Qué hace NSHandlesContentAsCompoundValueBindingOption de Cocoa binding exactamente?
- 13. ¿Qué significa "lambda" en Python, y cuál es la forma más sencilla de usarlo?
- 14. varargs en funciones lambda en Python
- 15. Python: ¿Por qué es necesario functools.partial?
- 16. ¿Es Linq o Lambda?
- 17. ¿Por qué es param en esta expresión lambda?
- 18. Cómo ordenar con lambda en Python
- 19. Python Lambda Count/Loop Function
- 20. ¿Qué significa "Expresión Lambda"?
- 21. Función lambda para clases en python?
- 22. ¿Qué es 'imprimir' en Python?
- 23. ¿Qué es "\ 00" en Python?
- 24. Python lambda con expresión regular
- 25. ordenación python sin expresiones lambda
- 26. Binding StringFormat
- 27. emberjs binding
- 28. Evaluación diferida con lambda en Python
- 29. ¿Por qué llamar a una expresión lambda de Python desde C# no es seguro para subprocesos?
- 30. Cuál es la diferencia entre Castor XML binding y JAXB binding
El primer enlace está muerto –