初學python沒多久,對python中函數的可變參數有點頭暈,查閱了stackflow,現總結一下
可變參數
可變參數應該最簡單,在C/C++和Java等語言中都有,就是用*號來表示,例如
def testArg(*arg)
你可以傳入任意多個元素(包括0)到參數中,在函數內部會自動認為是一個元組或列表
關鍵字參數
關鍵字參數在python中習慣用**kw表示,可以傳入0到任意多個“關鍵字-值”,參數在函數內部被當做一個字典結構。例如
def testArg(**kw) def testArg(city,**kw)
可以這樣調用他
testArg(name='John',job='hoker') testArg('beijin',name='john')
關鍵字參數可以用來后期擴充函數的功能,例如:先設定必要的參數,之后選擇性的增加可選參數。
命名關鍵字參數
采用命名關鍵字參數可以限制函數傳入的關鍵字參數,定義如下:
def testArg(city,name,*,age,job)
可以這樣調用他
testArg('beijin','wfp',age='25',job='hoker') testArg('beijin','wfp',addr='shanghai',age='25',job='hoker')
但是不能這樣調用他
testArg('beijin','wfp','25',job='hoker')
會提示缺少一個參數,定義了命名關鍵字參數的話,必須要把全部的關鍵字參數傳入進去
原文:https://blog.csdn.net/a2211455/article/details/53928870