Python函式引數型別及排序原理總結
阿新 • • 發佈:2020-01-09
這篇文章主要介紹了Python函式引數型別及排序原理總結,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
Python中函式的引數問題有點複雜,主要是因為引數型別問題導致的情況比較多,下面來分析一下。
引數型別:預設引數,關鍵字引數,不定長位置引數,不定長關鍵字引數。
其實總共可以分為 位置引數和關鍵字引數,因為位置引數被放在list裡面,關鍵字引數放在dict裡面,Python在解讀的時候首先處理list,沒有遇到關鍵字就append到list裡面,遇到關鍵字了,就開始做dict直到結束,所以,位置引數必須放在關鍵字引數前面。
這裡總結出三個模型:
1:不存在預設函式時:
def test(a,*args,c,d=3,**kwargs): print(a) print(args) print(c) print(d) print(kwargs) test(1,2,3,4,c=1,d=4,e=11,f=22)
執行結果:
1 (2,4) 1 4 {'e': 11,'f': 22}
2:存在預設引數,引數取預設值,(預設引數放在*args後面)
def test(a,b=1,**kwargs): print(a) print(args) print(b) print(c) print(d) print(kwargs) test(1,f=22,h=66)
執行結果:
(2,4) 1 {'e': 11,'f': 22,'h': 66}
3:存在預設引數,引數不取預設值,(預設引數放在*args前面)
def test(a,**kwargs): print(a) print(b) print(args) print(c) print(d) print(kwargs) test(1,h=66)
執行結果:
1 2 (3,4) 1 4 {'f': 22,'e': 11,'h': 66}
總結:
從上面也看出來了,其實基本順序就是 位置引數--->關鍵字引數,然後就是預設引數在 *args前後的問題了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。