当前位置: 代码迷 >> 综合 >> python中的*args、**kwargs的用处
  详细解决方案

python中的*args、**kwargs的用处

热度:116   发布时间:2023-09-30 19:23:27.0

可变参数 (Variable Argument) 的方法

使用*args和**kwargs语法。其中,*args是可变的positional arguments列表,kwargs是可变的keyword arguments列表。并且,*args必须位于kwargs之前,因为positional arguments必须位于keyword arguments之前。

为什么有*和**两种写法

一个星(*):表示接收的参数作为元组来处理

两个星(**):表示接收的参数作为字典来处理

这里将接受的参数pack成元组或字典

def function(arg,*args,**kwargs):print(arg,args,kwargs)function(6,7,8,9,a=1, b=2, c=3)

python中的*args、**kwargs的用处
在函数调用的时候也可以将参数unpack

def test_args(first, second, third, fourth, fifth):print('First argument: ', first)print('Second argument: ', second)print('Third argument: ', third)print('Forth argument:',fourth)print('Fifth argument: ', fifth)args = [1, 2, 3, 4, 5] 
test_args(args) #直接将列表输入函数会报错

python中的*args、**kwargs的用处

def test_args(first, second, third, fourth, fifth):print('First argument: ', first)print('Second argument: ', second)print('Third argument: ', third)print('Forth argument:',fourth)print('Fifth argument: ', fifth)args = [1, 2, 3, 4, 5]
test_args(*args)  #加上*,对列表unpack#对于字典,就使用**unpack
kwargs = {
    'first': 1,'second': 2,'third': 3,'fourth': 4,'fifth': 5
}test_args(**kwargs)

python中的*args、**kwargs的用处

  相关解决方案