参数的几种类型:
位置参数:
函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为: “位置参数”
默认值参数:
我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。称为“默认值参数”。 默认值参数放到位置参数后面。
命名参数:
我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”。
可变参数:
可变参数指的是“可变数量的参数”。分两种情况:
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
时间: 2024-10-01 04:57:06