python中*args,**kwargs
*args
:当我们不知道要有多少个参数传给函数,或者我们想把一个列表或者tuple存起来以后传给函数。
**kwargs:当我们不知道有多少个关键字参数要传给函数,或者我们想把字典存起来以后传给函数
In [156]: def f(*args,**kwargs): ...: print(args,kwargs) ...: In [157]: a=[1,2,3] In [158]: b=(4,5,6) In [159]: c={'a':1,'b':3,'c':5} In [160]: f() () {} In [161]: f(1,2,3) (1, 2, 3) {} In [162]: f(1,2,3,'a') (1, 2, 3, 'a') {} In [163]: f(a=1,b=2,c=3) () {'a': 1, 'b': 2, 'c': 3} In [165]: f(*a,**c) (1, 2, 3) {'a': 1, 'b': 3, 'c': 5} In [166]: f(*b,**c) (4, 5, 6) {'a': 1, 'b': 3, 'c': 5} In [167]: f(1,2,*a) (1, 2, 1, 2, 3) {}