1、收集参数(参数前面加*):
def test1(param1,*params):
print(param1)
print(params)
调用:test1(1,2,3,4)
结果:1
(2,3,4)
2、收集参数的逆过程
def test2(x,y):
return x+y
调用:params=(1,2)
test2(*params)
结果:3
3、*arg和**kwargs
def aa(a, *args, **kwargs): kwargs['f'] = 'aaa' kwargs['g'] = 'bbb' print(a) print(args) print(kwargs) if __name__ == "__main__": aa(1, 2, 3 , d='4', e=5) ###结果 1 (2, 3) {'d': '4', 'e': 5, 'f': 'aaa', 'g': 'bbb'}
args 是 arguments 的缩写,表示位置参数;
kwargs 是 keyword arguments 的缩写,表示关键字参数。
Python 中可变参数的两种形式,并且 *args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面。