Я просто переключился на Python из Matlab, и я хочу использовать функцию лямбда для сопоставления функции f1(x,y)
с несколькими аргументами для одной функции аргумента f2(x)
для оптимизации. Я хочу, чтобы, когда я карта функции f2(x) <- f1(x,y=y1)
тогда y
будет оставаться постоянным, независимо от того, каких y1
изменений в Matlab это верно по умолчанию, но если я пытаюсь в Python, она постоянно меняется, как в следующих примерахлямбда-функция другой функции, но сила фиксированного аргумента
>>> def f1(x,y):
>>> return (x+y)
>>> y1 = 2
>>> f2 = lambda x: f1(x,y1)
>>> f2(1)
3
I ожидать f2(1)
остается 3
, даже если я изменить y1
, однако, если я изменю y1
, вся f1(1)
также изменяется следующим образом
>>> y1 = 5
>>> f2(1)
6
Интересно, есть ли способ, что, когда я Децл находятся в положении f2 = lambda x: f1(x,y1)
, после этого f1
в это время принимает значение y1
и фиксирует его на f2
. Причина этого в том, что я хочу динамически создавать разные функции для разных сценариев, а затем суммировать их все. Я все еще новичок в Python, пожалуйста, помогите, очень ценю.
теперь он работает, как я хочу, спасибо за совет , Я чувствую, что это своего рода трюк, поскольку 'f2' на самом деле все еще имеет два аргумента, но он также принимает один аргумент, следовательно, работает для моего случая. –