我在下面的代码中做了什么错?当我运行这个程序时,我收到错误

时间:2017-09-30 06:48:04

标签: python python-3.x

根据我的理解,当我调用函数'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'

2 个答案:

答案 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')