Python中的*args和**kwargs 参数

发布时间 2023-05-06 16:12:39作者: wangssd

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是把字典的键值拆成单个的,依次赋值给函数的形参。)

打包参数:

 拆解参数: