位置參數
函數調用時,實參默認按照位置順序傳遞,需要個數的和形參匹配,按位置傳遞 的參數,稱爲:“位置參數”。
例子:
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