def f(a,*b):
print(a,b)
对于上面定义的函数f,如果我调用f(1, *(2,3))
,它将按预期输出1,(2,3)。
但是调用f(a=1, *(2,3))
会导致错误:
TypeError:f()为参数'a'获得了多个值
任何位置参数也可以作为显式关键字参数提供。
对f(a=1, *(2,3))
的解释应该唯一,没有歧义。
答案 0 :(得分:1)
def f(a,*b):
print(a,b)
f(1,*(2,3))
f(1,2,3)
考虑上面的示例,两者将以相同的方式调用相同的函数 现在,如果您指定= 1
f(a=1,2,3)
#or in other syntax
f(2,3,a=1)
然后,由于第2个位置参数是a=1 or a=2
是显式关键字参数,因此是否考虑a=1
具有不确定性。