python *args **kwargs用法
1. *args 用来将参数打包成tuple给函数体使用
def fun1(*args): print(args) print(type(args))
fun1(1, 2, 3)
# 输出
(1, 2, 3)
<class 'tuple'>
2. *kwargs 用来将关键字参数打包成字典给函数体使用
def fun2(**kwargs): print(kwargs) print(type(kwargs))
fun2(a=1, b=2, c=3)
# 输出
{'a': 1, 'b': 2, 'c': 3}
<class 'dict'>
arg,*args,*kwargs三个参数的位置必须是一定的,必须是(arg, *args, *kwargs)这个顺序。
def fun3(arg, *args, **kwargs): print(arg, args, kwargs) fun3(6, 7, 8, 9, a=1, b=2, c=3) # 输出 6 (7, 8, 9) {'a': 1, 'b': 2, 'c': 3}