可变参数 (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)
在函数调用的时候也可以将参数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) #直接将列表输入函数会报错
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)