¿Diferencias entre functools.partial y una lambda similar?
En Python, supongo que tengo una funciónf
que quiero transmitir con algunos argumentos secundarios (supongamos, para simplificar, que solo es el primer argumento que permanece variable).
¿Cuáles son las diferencias entre hacerlo de dos maneras (si las hay)?
# Assume secondary_args and secondary_kwargs have been defined
import functools
g1 = functools.partial(f, *secondary_args, **secondary_kwargs)
g2 = lambda x: f(x, *secondary_args, **secondary_kwargs)
En elpágina doc parapartial
, por ejemplo, hay esta cita:
partial
los objetos definidos en clases se comportan como métodos estáticos y no se transforman en métodos enlazados durante la búsqueda de atributos de instancia.
¿El método lambda sufrirá esto si se usa para hacer un método de clase a partir de los argumentos proporcionados a la clase (ya sea en el constructor o mediante una función más adelante)?