*args及**kwargs的使用方法
其中有个我们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}