python中的命名空间以及函数的嵌套

一.动态传参

函数的形参中除了默认值参数和位置参数外,还有动态传参.当不确定形参有几个或者有很多的时候,就可以使用动态传参.

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★★★★★★★★★★★★

这四种参数可以任意的进行使用

猜你喜欢

转载自www.cnblogs.com/shanghongyun/p/9449811.html