В Python предположим, что у меня есть функция f
, которую я хочу передать с некоторыми вторичными аргументами (предположим для простоты, что это только первый аргумент, который остается переменным).
В чем разница между этими двумя способами (если есть)?
# 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)
На странице doc для partial
, например, есть эта цитата:
partial
объекты, определенные в классах, ведут себя как статические методы и не преобразуются в связанные методы при просмотре атрибутов экземпляра.
Может ли этот лямбда-метод страдать от этого, если используется для создания метода класса из аргументов, предоставленных классу (либо в конструкторе, либо через функцию позже)?