1.接前两天对参数的介绍,今天我们来介绍一下动态传参
2.动态传参格式:
def 函数名(*形参):
形参前加个"星号",这里打不出来,就是上行形参前面的那个符号
作用:
动态传参可以做到,你想有多少个实参,就可以加多少个实参.
eg:def chi(*food):
print(food)
chi("米饭","白酒","火腿")
chi("米饭","白酒")
我们可以注意到调用第一个chi有三个实参,调用第二个chi有两个实参.也即动态传参是,你想在调用函数是有几个实参,就加几个实参,它不会限制你实参的个数.
3.关键字参数的动态传参:
格式:def 函数名(**形参):
形参前加两个星号,就构成了动态传参.
作用:
同2类似,它可以有不指定数目的实参.
eg:def chi(**food):
print(food)
chi(good_food="狗不理")
chi(not_food="辣条",drink="白酒")
注意了,要用"变量=数据",的形式进行传参,不然就会报错.
eg:上例中的chi(1="狗不理"),就会报错,因为1不是变量
当然,你可以发现此处的关键字参数与静态传参中的关键字参数有所不同,动态传参中的关键字参数,不一定非要你一定与函数中的形参变量同名,它可以是一个变量(如此处的drink,并不一定要是food)
4.在创建函数,与调用形参时,对各参数的先后顺序是有要求的.
其优先级依次为:
**形参<默认值参数<*形参<位置参数
eg:def chi(a,**food):
而不可以是:def chi(**food,a):
因为位置参数优先级大于动态关键词参数,所以位置参数应该放在最前面