函数的多类型传值和冗余参数
多类型传参(传的参数变量必须和行参一致)
In [2]: def fun(x,y):
...: return x+y
...:
In [3]: print fun(3,5)
8
将元组的参数传进去需要加个*
In [4]: t=(1,2)
In [5]: fun(*t)
Out[5]: 3
In [6]: fun(x=2,y=3)
Out[6]: 5
将字典的参数传进去,传字典需要加**
In [7]: dic={'x':1,'y':2}
In [8]: fun(**dic)
Out[8]: 3
冗余参数(处理传入过多的参数或者少的参数)
def fun(x,y,*args,**kwargs)
传一个*就是元组,传** 就是字典
In [11]: def fun(x,*aa,**bb):
....: print x
....: print aa
....: print bb
....:
传一个参数
In [12]: fun(1)
1
()
{}
传2个
In [14]: fun(1,2,'a')
1
(2, 'a')
{}
传3个值
In [15]: fun(1,2,'a',[1,2])
1
(2, 'a', [1, 2])
{}
可以直接传元组变量
In [22]: fun(1,2,'a',[1,2],*t)
1
(2, 'a', [1, 2], 1, 2)
{}
In [23]: t
Out[23]: (1, 2)
传3个类型值,将字典也传入进去
In [16]: fun(1,2,'a',[1,2],y=3,z=3)
1
(2, 'a', [1, 2])
{'y': 3, 'z': 3}
传入字典的其他方式
In [25]: fun(1,2,'a',[1,2],*t,**{'v':4})
1
(2, 'a', [1, 2], 1, 2)
{'v': 4}