def foo(*args, **kwargs):
print (args)
print (kwargs)
print ('*'*10)
if __name__ == '__main__':
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4,5,6, a=1,b=2,c=3)
foo('a', 1, None, a=1, b='2', c=3)
运行结果:
*args是所有参数的数组 , args是以元组()的形式存储,*args表示任何多个无名参数
**kwargs就是当你传入key=value是存储的字典 ,kwargs是以字典{ }的形式存储,**kwargs表示关键字参数
- 并且同时使用args和**kwargs时,必须args参数列要在**kwargs前