python中的*args 和**kwargs

这是一种特殊的语法,在函数定义中使用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

你可能感兴趣的:(python中的*args 和**kwargs)