参数的几种类型:
位置参数:
函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为: “位置参数”
默认值参数:
我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。称为“默认值参数”。 默认值参数放到位置参数后面。
命名参数:
我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”。
可变参数:
可变参数指的是“可变数量的参数”。分两种情况:
1. *param(一个星号),将多个参数收集到一个“元组”对象中。
2. **param(两个星号),将多个参数收集到一个“字典”对象中。
强制命名参数:
在带星号的“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”。
#
测试参数的类型:位置参数、默认值参数、命名参数、可变参数、强制命名参数
def test01(a,b,c,d): #位置参数、命名参数print(‘{0}--{1}--{2}--{3}‘.format(a,b,c,d))
def test02(a,b,c=30,d=40): #默认值参数,必须位于其他参数后面print(‘{0}--{1}--{2}--{3}‘.format(a, b, c, d))
def f1(a,b,*c): #可变参数处理(元组)print(a,b,c)
def f2(a,b,**c): #可变参数处理(字典)print(a, b, c)
def f3(a,b,*c,**d): #可变参数处理(元组+字典)print(a,b,c,d)
def f(*a,b,c): #强制命名参数print(a,b,c)
test01(10,20,30,40) #位置参数,参数个数不匹配时会报错
test01(d=11,c=22,a=33,b=44) #命名参数,通过形参名称来匹配
test02(66,99)
test02(66,99,555)
f1(1,2,3,4,5) #可变参数,3,4,5会放到元组中
f2(1,2,name=‘jack‘,age=18,sal=3000) #可变参数,后面数据会放到字典中
f3(1,2,3,4,5,name=‘jack‘,age=18) #可变参数,后面数据会根据规则放到元组、字典中
f(1,2,3,b=5,c=6) #强制命名参数:“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”
运行结果:
10--20--30--40
33--44--22--11
66--99--30--40
66--99--555--40
1 2 (3, 4, 5)
1 2 {‘name‘: ‘jack‘, ‘age‘: 18, ‘sal‘: 3000}
1 2 (3, 4, 5) {‘name‘: ‘jack‘, ‘age‘: 18}
(1, 2, 3) 5 6
原文:https://www.cnblogs.com/jack-zh/p/10840557.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!