Jak działa funkcja częściowa w Pythonie?
Nie jestem w stanie skupić się na tym, jak częściowe działa w functools. Mam następujący kod ztutaj:
>>> 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
Teraz w linii
incr = lambda y : sum(1, y)
Dostaję to bez względu na argumentincr
zostanie przekazany jakoy
dolambda
który wrócisum(1, y)
to znaczy1 + y
.
Rozumiem, że. Ale tego nie rozumiałemincr2(4)
.
W jaki sposób4
przechodzi jakox
w częściowej funkcji? Dla mnie,4
powinien zastąpićsum2
. Jaka jest relacja międzyx
i4
?