*args --表示所有引數的元組(tuple)
如:(1, 2, 3, 4)
**kwargs --表示傳入的鍵值對(key = value),返回資料結果為字典(dict)
如;例一:
def func(test, *args, **kwargs):
print("test = ", test)
print("args = ", args)
print("kwargs = ", kwargs)
func("testdata")
print('-----------------------------------')
func( 1, 2, '3')
print('------------------------------------')
func("testdata", 1, 2, '3', a=4, b="foo")
執行結果:
test = testdata
args = ()
kwargs = {}
-----------------------------------
test = 1
args = (2, '3')
kwargs = {}
------------------------------------
test = testdata
args = (1, 2, '3')
kwargs =
例二:
def func(*args):
print(args)
func()
func(12,'a','c',3)
func(12,'a','c',3,a=2,c=5,d='f') #這種情況會報錯,沒有定義關鍵字引數**kwargs,報錯資訊見執行結果
執行結果:
()
(12, 'a', 'c', 3)
traceback (most recent call last):
file "e:/test/pylearning/argkwarg.py", line 34, in func(12,'a','c',3,a=2,c=5,d='f')
typeerror: func() got an unexpected keyword argument 'a'
例三:
def func(**kwargs):
print(kwargs)
func()
func(a=2,c=5,d='f')
func(12,'a','c',3,a=2,c=5,d='f') #這種情況會報錯,沒有定義無名引數*args,報錯資訊見執行結果
執行結果:
{}
traceback (most recent call last):
file "e:/test/pylearning/argkwarg.py", line 33, in func(12,'a','c',3,a=2,c=5,d='f')
typeerror: func() takes 0 positional arguments but 4 were given
說明:
*args和**kwargs是python中的可變引數;
*args表示的是無名引數,可任意數量,其結果組成是乙個元組;
**kwargs表示的是關鍵字引數,即每乙個引數都是以鍵值對(key = value)的形式出現的,其結果組成是乙個字典;
在定義引數時,*args和**kwargs可以不傳參;
args和**kwargs可以單獨出現也可以一起出現,但一起出現的時候必須args在**kwargs之前。
python中args和kwargs引數的使用
在python中,規定了函式中的形參前帶 的,稱為可變位置引數,通常用 args表示。args表示乙個元組,傳入的引數值會被放到這個元組裡面,型別可以是任意的。同理,函式中形參前帶 的,成為可變關鍵字引數,通常用 kwargs表示。表示乙個字典,傳入的引數以鍵值對的形式存放在了字典裡面。下面我們來看...
Python中 args 和 kwargs的用法
好久沒有學習python了,應為工作的需要,再次拾起python,喚起記憶。當函式的引數不確定時,可以使用 args 和 kwargs,args 沒有key值,kwargs有key值。還是直接來 吧,廢話少說 python def fun var args farg,args print arg f...
Python中 args 和 kwargs的用法
當函式的引數不確定時,可以使用 args 和 kwargs,args 沒有key值,kwargs有key值。還是直接來 吧,廢話少說 python view plaincopyprint?def fun var args farg,args print arg farg for value in a...