Python 的函数在声明参数时大概有下面 4 种形式:
不带默认值的:def func(a): pass
带有默认值的:def func(a, b = 1): pass
任意位置参数:def func(a, b = 1, *c): pass
任意键值参数:def func(a, b = 1, *c, **d): pass
没有关键词的参数:func("G", 20)
带有关键词的参数:func(a = "G", b = 20)
pass
错误调用:
func(a = "G", 20) # SyntaxError 语法错误
func(20, a = "G") # TypeError 对参数 a 重复赋值
总结:关键词参数后不能加位置参数
不带默认值的:def func(a): pass
带有默认值的:def func(a, b = 1): pass
任意位置参数:def func(a, b = 1, *c): pass
任意键值参数:def func(a, b = 1, *c, **d): pass
*c的形式代表任意数量的位置参数,**d代表任意数量的关键词参数
没有关键词的参数:func("G", 20)
带有关键词的参数:func(a = "G", b = 20)
如,定义:
def func(a, b = 1):pass
错误调用:
func(a = "G", 20) # SyntaxError 语法错误
func(20, a = "G") # TypeError 对参数 a 重复赋值
总结:关键词参数后不能加位置参数