Python的*args和**kwargs的使用
# *args和*kwargs的使用
def test(*args,**kwargs):
print('args= ')
print(args)
print('kwargs= ')
print(kwargs)
print(50*'*')
if __name__ == '__main__':
test(1,2,3,4)
test(a=1,b=2,c=3)
test(1,2,3,4,a=1,b=2,c=3)
test('a','1',None,a=1,b='2',c='3')
运行结果
-
*args
是一个元组(Tunple),表示任何多个无名参数
-
**kwargs
是一个字典(Dict),表示关键字参数
注意点:
当args和kwargs一起使用的时候,*args的参数必须列在kwargs前面,就像
test('a','1',None,a=1,b='2',c='3')
如果位置颠倒的话,例如test(a=1,b=‘2’,c=3,1,None)这样的话,会报语法错误
“SyntaxError: non-keyword arg after keyword arg”