请使用以下代码:
def foo(a, b, c):
print(a, b, c)
foo(c=3, 1, 2)
我不明白为什么Python不允许这样做。 Python可以获取关键字参数并将其分配给参数c
,然后将其余的位置参数分配给未分配的参数a
和b
。
为什么不允许这样做?这背后的实际原因是什么?
更令人困惑的是foo(c=3, *(1, 2))
有效。这与上面的调用基本相同,因为元组被解压缩到各个参数中吗?
答案 0 :(得分:0)
如您所知,在Python中,位置参数传递紧随键盘参数传递之后,但是您要处理的问题是另一个问题,您已经为“ c”输入参数分配了两次值,而“通常,您面临的错误是缺少“ a”参数的相应值。