Python函式中的可變長引數詳解
阿新 • • 發佈:2020-01-09
一、Python函式中的引數
1、使用python的函式時,有引數類別,比如位置引數、關鍵字引數、可變長引數
2、位置引數、關鍵字引數很好理解,關鍵是可變長引數經常能見到,但是一直沒有搞懂是什麼意思
二、可變長引數
1、一個星號:函式可以接收任意個數的引數,只需要在形參前面加一個*(星號),一個星號形參的函式會把多個位置引數值當成元祖的形式傳入,也就是傳入的多個引數值可以在函式內部進行元祖遍歷
def length_param(a,*args): print("a=",a) print("args=",args) for arg in args: print("arg=",arg) length_param("zim","this","is","a","good","thing")
執行結果:
2、兩個星號:形參前面加兩個*(星號),注意是兩個星號哦,兩個星號形參的函式會把關鍵字引數值當成字典的形式傳入,在函式內部會把關鍵字引數當成字典在函式內部進行遍歷
def length_param(a,**kwargs): print("a=",a) print("kwargs=",kwargs) for kwarg in kwargs.keys(): print("kwarg=",kwarg) length_param("zim",b="this",c="is",d="good")
執行結果:
3、一個星號和兩個星號混合使用
class Params: def length_param(self,*args,**kwargs): print("args=",args) print("kwargs=",kwargs) for arg in args: print("arg=",arg) for kwarg in kwargs.values(): print("kwarg=",kwarg) one = Params() one.length_param("sam","thing",b="you",c="love",d="me")
執行結果:
注意:傳入可變長引數時,傳入關鍵字引數的key一定不能有冒號,否則會報如下錯誤
三、注意事項:
函式呼叫時關鍵字引數必須在位置引數後面
以上就是本次介紹的全部知識點內容,感謝大家的學習和對我們的支援。