如果有这样的一个函数:
def func(a1, a2=123, a3=456):
pass
如果使用:
func()
会报错:
TypeError: func() missing 1 required positional argument: 'a1'
因为参数没有默认值,所以必须传参
如果使用:
func(111, a1=222)
会提示
TypeError: func() got multiple values for argument 'a1'
因为第一个参数111代表a1, 又指定参数a1为222,所以对a1重复传参了。
如果使用:
func(111, a1=222, 333)
直接编译不通过,提示
SyntaxError: positional argument follows keyword argument
位置参数不能再关键字参数之后。