请看下面的内容:
from functools import partial
def add(a, b, c):
return 100 * a + 10 * b + c
add_part = partial(add, c = 2, b = 1)
add_part(3)
312
可以正常工作。但是:
def foo(x, y, z):
return x+y+z
bar = partial(foo, y=3)
bar(1, 2)
抛出异常:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: foo() got multiple values for argument 'y'
显然我错过了一些显而易见的东西,但是是什么呢?