应用 functools.partial() 后“TypeError:参数有多个值”[重复]

2024-06-21

考虑下面的代码片段,它使用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(使用前将#替换为@)

应用 functools.partial() 后“TypeError:参数有多个值”[重复] 的相关文章

随机推荐