一.动态传参
函数的形参中除了默认值参数和位置参数外,还有动态传参.当不确定形参有几个或者有很多的时候,就可以使用动态传参.
1.1 动态接收位置参数
在python中使用*来接收动态位置参数
1 def chi(*food): #只有动态参数
2 print('我要吃',*food)
3 chi('饭','肉','鱼') #我要吃 饭 肉 鱼
4
5 def chi(a,b,*food): #动态参数和位置参数
6 print('我要吃',*food)
7 chi('饭','肉','鱼','桃子','苹果') #我要吃 鱼 桃子 苹果
8
9 def chi(*food,a,b):
10 print('我要吃',*food)
11 chi('饭','肉','鱼','桃子','苹果') #chi() missing 2 required keyword-only arguments: 'a' and 'b'
12 #★动态参数必须在位置参数的后面,否则就全被动态参数给收了
13
14 def chi(a,b,*food,c='哈哈'): #动态参数和位置参数和默认值参数
15 print('我要吃',*food,c)
16 chi('饭','肉','鱼','桃子','苹果') #我要吃 鱼 桃子 苹果 哈哈
17 #★顺序位置参数,动态参数,默认值参数
1.2动态接收关键字参数
在python中使用**来接收动态关键字参数
1 def chi(**food): #只有动态关键字参数
2 print(food)
3 chi(a='收到',b=1,c=6) #{'a': '收到', 'b': 1, 'c': 6}
4
5 def chi(a,b,**food): #动态关键字参数和位置参数
6 print(a,b,food)
7 chi('sd','zc',n='收到',z=1,x=2) # 3sd zc {'n': '收到', 'z': 1, 'x': 2}
8
9 def chi(a,b,c='哈哈',**food): #动态关键字参数和位置参数和默认值参数
10 print(a,b,c,food)
11 chi('sd','zc',n='收到',z=1,x=2) #sd zc 哈哈 {'n': '收到', 'z': 1, 'x': 2}
★★★★★★★★★★★★★最终顺序:位置参数>*args>默认值参数>**kwargs★★★★★★★★★★★★
这四种参数可以任意的进行使用