Różnice między functools.partial a podobną lambdą?
W Pythonie załóżmy, że mam funkcjęf
że chcę omijać pewne dodatkowe argumenty (załóżmy dla uproszczenia, że jest to pierwszy argument, który pozostaje zmienny).
Jakie są różnice między robieniem tych dwóch sposobów (jeśli istnieją)?
# 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)
wstrona doc dlapartial
na przykład jest ten cytat:
partial
obiekty zdefiniowane w klasach zachowują się jak metody statyczne i nie przekształcają się w metody powiązane podczas wyszukiwania atrybutów instancji.
Czy metoda lambda ucierpi z tego, jeśli zostanie użyta do utworzenia metody klasy z argumentów dostarczonych do klasy (w konstruktorze lub później w funkcji)?