函数定义中的参数:关键字参数和常规参数都是位置参数
函数调用和函数定义中的参数详解
func(value) 常规参数,通过位置匹配 func(name=value) 关键字参数,通过变量名匹配 func(*sequence) 以name传递所有对象,解包元组 func(**dict) 以name成对的传递所有的关键字/值,并作为独立的关键字参数,解包字典 def func(name) 常规参数,通过位置或变量名匹配def func(*name)
匹配并收集进元组,所有包含位置的参数 def func(**name) 匹配并收集进字典,所有包含位置的参数 def func(*args,name) 参数必须在调用中按照关键字传递 def func(*,name=value) def func(name=value) 默认参数值,如果没有在调用中传递的话参数规则:
--在函数调用中参数出现的顺序:value>name=value>*sequence>**dict
--函数定义中参数出现顺序:name>name=value>*name>**name
参数匹配规则:
--通过位置分配非关键字参数
--通过匹配变量名分配关键字参数
--其他非关键字参数分配到*name元组中
--其他关键字参数分配到**name字典中
--用默认值分配给在头部未得到的分配参数
--keyword-only参数,在*后面所有的参数只接受关键字参数