Python *args **kwargs

示例1:


def test(a,*args,**kwargs):
        print a
        print args
        print kwargs

test(1,2,3,4,name='sun',age=25)

运行结果:

1
(2, 3, 4)
{'age': 25, 'name': 'sun'}

args,*kwargs”是python中的可变参数。

args”表示任何多个无名参数,它是一个tuple;“*kwargs”表示关键字参数,它是一个dict。

并且同时使用“args和kwargs”时,必须“args”参数列要在“**kwargs”前.

示例2:


def test(a,*args,**kwargs):
        print a
        print args
        print kwargs

a1=[5,6,7,8]

a2={'addr':'dl','phone':'123'}

test(1,a1,a2)

运行结果:

1
([5, 6, 7, 8], {'phone': '123', 'addr': 'dl'})
{}

示例3:


def test(a,*args,**kwargs):
        print a
        print args
        print kwargs

a1=[5,6,7,8]

a2={'addr':'dl','phone':'123'}

test(1,*a1,**a2)

运行结果:

1
(5, 6, 7, 8)
{'phone': '123', 'addr': 'dl'}

参数中“*list/tuple”形式表示,将list/tuple的元素挨个取出,作为函数参数;

参数中“**dict”形式表示,将dict的元素挨个取出,并形成key=value,作为函数参数;

你可能感兴趣的:(Python *args **kwargs)