根据我的理解,当我调用函数'func'时,位置参数'1'将自己与'a'对齐,关键字参数'b'保持值'Bee'将被赋值为'b' (在def中)并且元组中的值将被解压缩并被分配给'c'和'd'。
我期待o / p为:
1 Bee See Dee
def func(a,b,c,d):
print(a,b,c,d)
func(1, b= 'Bee', *('See','Dee'))
我面临的实际错误是:
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
func(1, b= 'Bee', *('See','Dee'))
TypeError: func() got multiple values for argument 'b'
答案 0 :(得分:0)
这有效:
func(1, 'Bee', *('See','Dee'))
您的原始内容并不是因为b
被指定为关键字参数,但也是第二个位置参数('See'
)。
答案 1 :(得分:0)
考虑将属性放在最后,如下所示:
def func(a, b, c, d):
print(a, b, c, d)
func(1, *('See', 'Dee'), d = 'Bee')