位置参数
函数调用时,实参默认按照位置顺序传递,需要个数的和形参匹配,按位置传递 的参数,称为:“位置参数”。
例子:
def one(a,b,c):
print(a,b,c)
one(1,2,3)
one(1,2) #这里报错,位置参数不匹配
返回值:
>>>Traceback (most recent call last):
1 2 3
File "D:/B_project/Kong_Ji/git_data/z_Script/gove.py", line 116, in <module>
one(1,2) #这里报错,位置参数不匹配
TypeError: one() missing 1 required positional argument: 'c'
默认值参数
可以为某些参数设置默认值,这样这些参数传递时就是可选的,称为“默认值参数”,默认值参数放在位置参数后面。
例如:
def one(a,b,c=10):
print(a,b,c)
one(11,22)
one(11,22,33)
返回:
>>>11 22 10
11 22 33
命名参数
也可以按照形参的名称传递参数,称为:“命名参数”,也称“关键字参数”
def one(a,b,c):
print(a,b,c)
one(c=11,a=22,b=33) #命名参数
one(10,11,22) #位置参数
返回:
>>>11 33 11
10 11 22
可变参数*
可变参数指的是“可变数量的参数”。分为两种情况:
1.*param(一个星号),将多个参数收集到一个“元组”对象里面
2.**param(两个星号),将多个参数收集到一个“字典”对象中
例子(测试可变参数处理,元组和字典两种方式):
#传递参数形成元组
def f01(a,b,*c):
print(a,b,c)
f01(8,9,10,11,22,33)
#传递参数形成字典
def f02(a,b,**c):
print(a,b,c)
f02(10,20,name="xx",gae=18)
#传递参数形成字典和元组
def f03(a,b,*c,**d):
print(a,b,c,d)
f03(10,20,30,40,name='xx',age=18)
返回:
>>>8 9 (10, 11, 22, 33)
10 20 {'name': 'xx', 'gae': 18}
10 20 (30, 40) {'name': 'xx', 'age': 18}
强制命名参数
在带星号的“可变参数”后面增加新的参数,必须是“强制命名参数”。
例子:
def one(*a,b,c):
print(a,b,c)
#one(2,3,4) #会报错,由于a是可变参数,将2,3,4全部收集,造成b和c没有赋值
one(2,b=3,c=4)
返回:
>>>(2,) 3 4