Python函数参数传递序列
以下代码不正确:Python函数参数传递序列,python,argument-passing,Python,Argument Passing,以下代码不正确: def add(a, b, c): return a + b + c args = (2, 3) add(a = 1, *args) TypeError: add() got multiple values for keyword argument 'a' 我在中看到了一些示例,但我仍然不知道为什么会出现错误,有人能详细解释一下吗?应用参数时,Python首先填充位置参数,然后填充关键字参数 在您的特定情况下,首先应用*args,因此第一个位置参数传递2,第二个传递
def add(a, b, c):
return a + b + c
args = (2, 3)
add(a = 1, *args)
TypeError: add() got multiple values for keyword argument 'a'
我在中看到了一些示例,但我仍然不知道为什么会出现错误,有人能详细解释一下吗?应用参数时,Python首先填充位置参数,然后填充关键字参数 在您的特定情况下,首先应用
*args
,因此第一个位置参数传递2
,第二个传递3
。第一个参数是a
然后应用a=1
,Python发现您已经对其应用了一个值
换句话说,当您将位置参数用作关键字参数时,Python不能也不会考虑位置参数。仅仅因为使用了
作为关键字参数,并不意味着它不适合作为位置参数。应用参数时,Python首先填充位置参数,然后填充关键字参数
在您的特定情况下,首先应用*args
,因此第一个位置参数传递2
,第二个传递3
。第一个参数是a
然后应用a=1
,Python发现您已经对其应用了一个值
换句话说,当您将位置参数用作关键字参数时,Python不能也不会考虑位置参数。仅仅因为您使用了a
作为关键字参数,并不意味着它不适合作为位置参数。我注意到a搜索会产生大量的点击率。这些问题适合你的情况吗?我注意到a搜索会产生大量的点击率。这些问题适合你的情况吗?