天天看點

python函數的可變參數*args和關鍵字參數**kw

1. 定義解釋

在函數定義def func(*args, **kw) 時,

    參數args 前有‘*’符号,表示該參數是可變參數,即參數的數量可以為任意個;

    參數kw 前有‘**’符号,表示該參數是關鍵字參數,即參數帶有key,且數量可以為任意個;

在函數調用 func(*args, **kw) 時,

    參數args 前有‘*’符号,表示會把args展開,把其中的每個參數傳入;args是一個list或tuple.

    參數kw 前有‘**’符号,表示會把kw展開,把其中的每個key=value傳入;kw是一個dict.

2. 舉例說明

def sum(x,y,z=10,**kw):
	print kw
	return x+y+z
 
nms = [1,2]
sts = {'a':1,'z':20}
print sum(*nms,**sts)    #實際運作 sum(1,2,z=20,a=1),并組裝了kw={'a':1} #output: {'a':1} 23
           

參考:

1. https://blog.csdn.net/yeqiustu/article/details/80314704 

2. https://blog.csdn.net/lxy210781/article/details/80628426