如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传递参数时要用 * args;如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用 ** kwargs。
注意: * args和 ** kwargs可以同时在函数的定义中,但是 * args必须在 * *kwargs前面。
注意: * args和 ** kwargs可以同时在函数的定义中,但是 * args必须在 * *kwargs前面。
def suibian(*args,**kwargs): print(args) print(kwargs) suibian(1,2,3,[1,2,3],{'name':'apollo','age':28}) # 这里体现的是聚合的效果,
打印结果:
(1, 2, 3, [1, 2, 3], {'name': 'apollo', 'age': 28}) {}
注意:{'name':'apollo','age':28})并没有进入到kwargs中,原因他不是一个键值对
将上面代码稍加改造
def suibian(*args,**kwargs): print(args) print(kwargs) suibian(1,2,3,[1,2,3],name='apollo',age=28) # 原来字典形式,现在直接用键值对传入,效果大不一样
打印结果: