Я не могу понять, как частично работает в functools. У меня есть следующий код здесь:
>>> sum = lambda x, y : x + y
>>> sum(1, 2)
3
>>> incr = lambda y : sum(1, y)
>>> incr(2)
3
>>> def sum2(x, y):
return x + y
>>> incr2 = functools.partial(sum2, 1)
>>> incr2(4)
5
Теперь в строке
incr = lambda y : sum(1, y)
Я получаю, что любой аргумент, передаваемый в incr
, будет передан как y
в lambda
, который вернет sum(1, y)
i.e 1 + y
.
Я это понимаю. Но я не понял этого incr2(4)
.
Как передается 4
как x
в частичной функции? Для меня 4
должен заменить sum2
. Какова связь между x
и 4
?