*args及**kwargs的使用方法

作者: TT 分类: 技术 发布时间: 2019-11-28 18:47

其中有个我们python接口自动化测试实战的一期学员看到对代码里面的*args及**kwargs非常困惑,所以在这里做个记录,希望对后来看到此文的同学能有所帮助。

# coding:UTF-8
"""
*args的使用方法:
用来将参数打包成tuple给函数体调用
"""


# 举例1
def func1(*args):
    print(args, type(args))


func1(1)


# 举例2
def func2(x, y, *args):
    print(x, y, args)


func2(1, 2, 3, 4, 5)


"""
**kwargs的使用方法:
打包关键字参数成dict给函数体调用
"""


# 举例1
def func3(**kwargs):
    print(kwargs, type(kwargs))


func3(a=2)


def func4(**kwargs):
    print(kwargs)


func4(a=1, b=2, c=3)


def func(arg, *args, **kwargs):
    print(arg, args, kwargs)


func(6, 7, 8, 9, a=1, b=2, c=3)

如上代码执行结果:

1 2 (3, 4, 5)
{'a': 2} <class 'dict'>
{'a': 1, 'b': 2, 'c': 3}
6 (7, 8, 9) {'a': 1, 'b': 2, 'c': 3}