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) {}
上一篇:[转]C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解


下一篇:HDU 1540 Tunnel Warfare(经典)(区间合并)【线段树】