Diferenças entre functools.partial e um lambda semelhante?
Em Python, suponha que eu tenha uma funçãof
que eu quero passar com alguns argumentos secundários (suponha, por simplicidade, que é apenas o primeiro argumento que permanece variável).
Quais são as diferenças entre fazer essas duas maneiras (se houver)?
# 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)
Nopágina de documento parapartial
, por exemplo, existe essa citação:
partial
Objetos definidos em classes se comportam como métodos estáticos e não se transformam em métodos vinculados durante a pesquisa de atributo de instância.
O método lambda sofrerá com isso se usado para fazer um método de classe a partir de argumentos fornecidos para a classe (no construtor ou através de uma função posteriormente)?