I am not able to get my head on how the partial works in functools.
I have the following code from here:
>>> 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
Now in the line
incr = lambda y : sum(1, y)
I get that whatever argument I pass to incr
it will be passed as y
to lambda
which will return sum(1, y)
i.e 1 + y
.
I understand that. But I didn’t understand this incr2(4)
.
How does the 4
gets passed as x
in partial function? To me, 4
should replace the sum2
. What is the relation between x
and 4
?