考虑下面的代码片段,它使用functools.partial() https://docs.python.org/3/library/functools.html#functools.partial:
import functools
def add(a, b):
return a + b
add_10 = functools.partial(add, a=10)
add_10(4)
当我运行它时,我收到以下错误:
Traceback (most recent call last):
File "test.py", line 7, in <module>
add_10(4)
TypeError: add() got multiple values for argument 'a'
当我将倒数第二行中的关键字参数更改为位置参数时,它会传递:
add_10 = functools.partial(add, 10)
为什么第一种情况没有通过?我正在使用Python 3.4。
import functools
def add(a, b):
return a + b
add_10 = functools.partial(add, b=10)
add_10(4)
这段代码会起作用。具有默认值的函数参数必须位于末尾。所以 b=10 而不是 a=10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)