码迷,mamicode.com
首页 > 其他好文 > 详细

*args 和**kwargs 的理解以及 函数的参数的总结

时间:2020-01-05 00:15:56      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:color   pre   形参   关键字   print   报错   之间   函数   **kwargs   

一:函数参数的理解:

 1 def 函数名(函数参数):
 2     函数体
 3 
 4 例如:
 5 def func(a):  # a 是形参
 6     print(a)
 7 
 8 func(123)  # 123 是实参
 9 
10 形参又分为: 关键字参数,位置参数,混合参数
11 关键字参数
12 def func(x,y,z="默认参数"):
13     print(x,y,z)
14 
15 func(1,y="xumou")  # 1 xumou 默认参数
16 ‘‘‘
17 代表 位置参数、
18 y 代表  关键字参数
19 z 代表默认参数
20 
21 他们之间的关系:关键字参数必须要在位置参数的后面,
22 
23 位置参数〉关键字参数,默认值参数
24 
25 ‘‘‘
26 # 接收动态参数的时候,动态参数必须要在位置参数后面
27 def func01(a,b,*gg):
28 
29     print(gg,a,b)
30 
31 func01(1,2,"34")
32 
33 # 位置参数和默认值参数:必须先声明位置参数,再声明默认值参数
34 def func03(a,c=12):
35 
36     print(a,c)
37 
38 func03("AA")  #  AA 12
39 
40 
41 # *pp中的*接收任意动态参数:
42 def func03(*pp):
43     print(pp)
44 func03("q","w","e",22,33)  # (‘q‘, ‘w‘, ‘e‘, 22, 33)
45 
46 
47 # 接受动态参数:位置参数必须要在动态参数
48 
49 def func04(a,b,*args):
50     print("func04>>",a,b,args)
51 func04(1,2,5,7)  # func04>> 1 2 (5, 7)
52 
53 # ----------错误示范:----------
54 def func04(*args,a,b):
55     print("func04>>",a,b,args)
56 func04(1,2,5,7)  # 报错
57 
58 # --------------------
59 
60 # 报错:因该改为:
61 def func04(*args,a,b):
62     print("func04>>",a,b,args)
63 func04(1,2,a=5,b=7)  # func04>> 5 7 (1, 2)
64 
65 
66 
67 # **kwargs 用来接收动态关键字参数
68 def func02(**kwargs):
69     print(kwargs)  #  {‘a‘: 12, ‘b‘: 23}  结果是一个dict
70 
71 func02(a=12,b=23)
72 
73 
74 # 最终的顺序是:
75 # 位置参数〉*args〉默认值参数〉**kwargs

*args 和**kwargs 的理解以及 函数的参数的总结

标签:color   pre   形参   关键字   print   报错   之间   函数   **kwargs   

原文地址:https://www.cnblogs.com/mtn007/p/12150596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!