Python参数组合详解编程语言

参数定义的顺序必须是:①必选参数、②默认参数、③可选参数、④命名关键字参数、⑤关键字参数

1 #a,b为必选参数;c为默认参数;args为可变参数;kw为关键字参数 
2 def f1(a,b,c=0,*args,**kw): 
3     print('a=','b=',b,'c=','args=',args,'kw=',kw) 
4  
5 #参数定义的顺序必须是:必选参数、默认参数、可选参数、命名关键字参数、关键字参数 
6 def f2(a,b,c=0,*,d,**kw): 
7     print('a=','b=',b,'c=','d=',d,'kw=',kw)

 调用

f1(1,2) 
f1(1,2,3) 
f1(1,2,c=3) 
f1(1,2,3,'a','b') 
f1(1,2,3,'a','b',x=99,y=88,z=77,t='100') 
f2(1, 2, city='Shanghai', ext=None)

调用结果

a= 1 b= 2 c= 0 args= () kw= {} 
a= 1 b= 2 c= 3 args= () kw= {} 
a= 1 b= 2 c= 3 args= () kw= {} 
a= 1 b= 2 c= 3 args= ('a', 'b') kw= {} 
a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 99, 'y': 88, 'z': 77, 't': '100'} 
a= 1 b= 2 c= 0 city= Shanghai kw= {'ext': None}

 以list或dict参数传入

args=(1,2,3,4) 
kw={'Nation':'China','City':'Shanghai'} 
f1(*args,**kw) 
 
args=(1,2,3) 
kw={'y':33,'city':'Shanghai'} 
f2(*args,**kw)

结果

a= 1 b= 2 c= 3 args= (4,) kw= {'City': 'Shanghai', 'Nation': 'China'} 
a= 1 b= 2 c= 3 city= Shanghai kw= {'y': 33}

所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/15834.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论