Python學習之 args和 kwargs

2021-07-31 04:12:32 字數 1890 閱讀 4869

學習python

有所幫助。

函式定義

在python的函式定義中使用*args和**kwargs可傳遞可變引數。*args用作傳遞非命名鍵值可變長引數列表(位置引數),**kwargs用作傳遞鍵值可變長引數列表。

當你不確定你的函式裡將要傳遞多少引數時你可以用*args.例如,它可以傳遞任意數量的引數,*args 示例:

deftest_var_args(farg, *args):

print "formal arg:", farg

for argin args:

print "another arg:", arg

test_var_args(1, "two", 3)

結果:formalarg: 1anotherarg: twoanotherarg: 3

相似的,**kwargs允許你使用沒有事先定義的引數名,**kwargs示例:

deftest_var_kwargs(farg, **kwargs):

print "formal arg:", farg

for keyin kwargs:

print "another keyword arg: %s: %s" % (key, kwargs[key])

test_var_kwargs(farg=1, myarg2="two", myarg3=3)

結果:formalarg: 1anotherkeywordarg: myarg2: twoanotherkeywordarg: myarg3: 3

*args和**kwargs也可以混合使用,需要注意的是,*args需要放在**kwargs前面:

deftest_kwargs(first, *args, **kwargs):

print 'required argument: ', first

for v in args:

print 'optional argument (*args): ', v

for k, v in kwargs.items():

print 'optional argument %s (*kwargs): %s' % (k, v)

test_kwargs(1, 2, 3, 4, k1=5, k2=6)

結果:requiredargument:  1

optionalargument (*args):  2

optionalargument (*args):  3

optionalargument (*args):  4

optionalargumentk2 (*kwargs): 6

optionalargumentk1 (*kwargs): 5

函式呼叫

這種語法不僅在函式定義中可以使用,在呼叫函式是也會出現(相當於extract package的效果)

*args 示例:

deftest_var_args_call(arg1, arg2, arg3):

print "arg1:", arg1

print "arg2:", arg2

print "arg3:", arg3

args = ("two", 3)

test_var_args_call(1, *args)

結果:arg1: 1arg2: twoarg3: 3

**kwargs示例:

deftest_var_args_call(arg1, arg2, arg3):

print "arg1:", arg1

print "arg2:", arg2

print "arg3:", arg3

kwargs =

test_var_args_call(1, **kwargs)

結果:arg1: 1

arg2: two

arg3: 3

python之args和 kwargs(詳解)

args kwargs 不定長引數 def jia args s 0for i in args s i return s print jia 1,2,3 6python函式允許同時全部或部分使用使用固定引數,預設引數,單值 一顆星 可變引數,鍵值對 兩顆星 可變引數,使用時必須安裝前述順序書寫。de...

python 中 args和 kw 學習筆記

1.實參 def test 0 x,y 實參x,y print x print y test 0 4,5 452.args 非關鍵字引數,用於元組 def test 1 x,y,args args print x print y print the length of args is s len a...

python的 args和 kwargs用法

python的 args和 kwargs如何用,看了下面的例子你就清楚了。先來看乙個例子 複製 如下 def foo args,kwargs print args args print kwargs kwargs print if name main foo 1,2,3,4 foo a 1,b 2,...