1. 程式人生 > >python 可變引數和關鍵字引數*args **kwargs

python 可變引數和關鍵字引數*args **kwargs

在Python函式中,還可以定義可變引數。顧名思義,可變引數就是傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個。

*args可變引數

*args表示把args這個list或者tuple的所有元素作為可變引數傳進去。兩種傳遞方式如下:

>>> def foo(x,*args):#x為位置引數 args是可變引數
	print(x)
	print(args)
	
>>> foo(1,2,3,4)#1傳給位置引數x,剩下的全部傳給args
1
(2, 3, 4)
>>> 

>>> foo(1,*(2,3,4))#可直接把一個tuple或list傳給可變引數args
1
(2, 3, 4)

**kwargs關鍵字引數

>>> def foo(x,**kwargs):
	print(x)
	print(kwargs)

#兩種傳遞方式:**傳遞或者鍵值對傳遞
>>> foo(1,**{"y":2,"z":3})  #可直接把一個字典通過加**傳遞給關鍵字引數
1
{'y': 2, 'z': 3}

>>> foo(1,y=2,z=3)   #所有鍵值對都傳給關鍵字引數
1
{'y': 2, 'z': 3}