Python函數參數的幾種類型

位置參數

函數調用時,實參默認按照位置順序傳遞,需要個數的和形參匹配,按位置傳遞 的參數,稱爲:“位置參數”。

例子:

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 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章