python 多类型传值
In [11]: def fun(x, y):
...: return x + y
...:
In [12]: dic = {'x':1, 'y':3}
In [13]: fun(*dic)
Out[13]: 'yx'
In [14]: fun(**dic)
Out[14]: 4
In [15]: t = (1, 3)
In [16]: fun(*t)
Out[16]: 4
冗余参数
def fun(x, y, *args, **kwargs)
args参数里面接收除了x,y参数以外的参数如字符串,列表,元祖
kwargs参数接收字典类的参数
In [20]: def fun(x, *args, **kwargs):
...: print x
...: print args
...: print kwargs
...:
In [21]: fun(1,'a',2,a=1,b=2)
1
('a', 2)
{'a': 1, 'b': 2}
In [22]: t = (3, 4)
In [24]: dic = {'a':6, 'b':9}
In [25]: fun(1, *t, **dic)
1
(3, 4)
{'a': 6, 'b': 9}
递归
- 递归参数要向默认结果收敛(就是函数要有结束条件)
- 递归就是自己调用自己
In [1]: def dg(n):
...: if n == 0:
...: return 1
...: else:
...: return n * dg(n-1)
...:
In [2]: dg(10)
Out[2]: 3628800