Python中的*args和**kwargs 参数
args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。
*args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面。
*args就是就是传递一个可变参数列表给函数实参
**kwargs则是将一个可变的关键字参数的字典传给函数实参
def test_kwargs(first, *args, **kwargs): print('Required argument: ', first) print(type(kwargs)) for v in args: print ('Optional argument (args): ', v) for k, v in kwargs.items(): print ('Optional argument %s (kwargs): %s' % (k, v)) test_kwargs(1, 2, 3, 4, k1=5, k2=6)
* 具有打包/拆解参数的作用(*args
是把多个位置参数打包成元组;把打包了的参数拆成单个的,依次赋值给函数的形参)
打包参数:
拆解参数:
** 具有打包参数的作用(**kwargs
是把多个关键字参数打包成字典;**kwargs
是把字典的键值拆成单个的,依次赋值给函数的形参。)
打包参数:
拆解参数: