gpt4 book ai didi

python - functools.partial 想要使用位置参数作为关键字参数

转载 作者:IT老高 更新时间:2023-10-28 22:22:03 27 4
gpt4 key购买 nike

所以我想了解部分:

import functools

def f(x,y) :
print x+y

g0 = functools.partial( f, 3 )
g0(1)

4 # Works as expected

在:

g1 = functools.partial( f, y=3 )
g1(1)

4 # Works as expected

在:

g2 = functools.partial( f, x=3 )
g2(1)

TypeError: f() got multiple values for keyword argument 'x'

如果我使用 y 作为关键字参数,TypeError 就会消失:

在:

g2( y=1 )

4

TypeError 的原因是什么?

最佳答案

这与 functools.partial 无关,真的。你本质上是这样调用你的函数的:

f(1, x=3)

Python首先满足位置参数,你的第一个参数是x。然后应用关键字参数,您再次提供 x

functools.partial() 无法检测到您已经提供了第一个位置参数作为关键字参数。它不会通过将位置参数替换为 y= 关键字参数来增加您的调用。

在混合位置参数和关键字参数时,必须注意不要两次使用相同的参数。

关于python - functools.partial 想要使用位置参数作为关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24755463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com