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 dlapartialna 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)?

questionAnswers(4)

yourAnswerToTheQuestion