python中的*args 和**kwargs
2018-05-18 本文已影响0人
dpengwang
这是一种特殊的语法,在函数定义中使用args和kwargs传递可变长参数. *args用作传递非命名键值可变长参数列表(位置参数); kwargs用作传递键值*可变长参数列表
#第一个参数是固定参数
def test1(arg1,*args):
print(arg1)
for i in args:
print(i)
test1("hello",1,2,3,4)
hello
1
2
3
4
**kwargs用来传递可变键值参数
一般与字典或者等值对连用\
字典:
def test2(arg1,**kwargs):
print(arg1)
for key in kwargs:
print(key,kwargs[key])
adict={}
adict['a']=1
adict['b']=2
test2("hell0",**adict)
===>
hello
a 1
b 2
等值对
def test2(arg1,**kwargs):
print(arg1)
for key in kwargs:
print(key,kwargs[key])
test2(arg1="hello",ab=1,a=2)
==>
hello
ab 1
a 2