2018-10-01 Python5 函数

缺省参数,命名参数:

  1 def test(a,b,c=33,d=44):  #缺省参数:可以写多个,一定要写在最后
  2         print(a)
  3         print(b)
  4         print(c)
  5         print(d)
  6 
  7 test(b=11,a=22,d=55)   #命名参数:可以不按顺序传参

结果:

22
11
33
55

 

可变长参数

 11 def test1(a,b,*args):
 12         print("-"*20)
 13         print("a=",a)
 14         print("b=",b)
 15         print("args=",args)
 16         print("-"*20)
 17         print(" ")
 18 
 19 test1(11,22,33,44,55)
 20 test1(11,22,33)
 21 test1(11,22)

结果:

--------------------
a= 11
b= 22
args= (33, 44, 55)
--------------------
 
--------------------
a= 11
b= 22
args= (33,)   #当元组只有一个元素时,这样表示
--------------------
 
--------------------
a= 11
b= 22
args= ()    #空元组
--------------------

 

可变长参数 & 可变长命名参数

 28 def test2(a,b,c=3, *args, **kwargs):  # *表示可变长参数,**表示可变长命名参数
 29         print("-"*20)
 30         print("a=",a)
 31         print("b=",b)
 32         print("c=",c)
 33         print("args=",args)
 34         print("kwargs=",kwargs)
 35         print("-"*20)
 36         print(" ")
 37 
 38 test2(11,22,33, 44,55,66, task=99,done=89) 
    #未命名的多余参数 存入args中 以元组形式存放, 命名的多余参数 存入kwargs中 以字典形式存放。
 39 
 40 A=(44,55,66)
 41 B={"name":"mengmei", "age":18}
 42 test2(11,22,33, A,B)       #A和B均会存入args中
 43 
 44 test2(11,22,33, *A, **B)   #拆包元组用*   拆包字典用**

结果:

--------------------
a= 11
b= 22
c= 33
args= (44, 55, 66)
kwargs= {'done': 89, 'task': 99}
--------------------
 
--------------------
a= 11
b= 22
c= 33
args= ((44, 55, 66), {'name': 'mengmei', 'age': 18})
kwargs= {}
--------------------
 
--------------------
a= 11
b= 22
c= 33
args= (44, 55, 66)
kwargs= {'name': 'mengmei', 'age': 18}
--------------------
 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容