1.参数前一个“*”:在函数中会把传的参数转成一个元组。
In [1]: def func (*args): ...: print(args) ...:In [2]: func(123,234,'adds',[5,6,7])(123, 234, 'adds', [5, 6, 7])
2,“**args”的参数:函数中被转成一个字典。
In [5]: def func(**args)k: ...: print(args) ...:In [6]: func(a=22,b=33){ 'a': 22, 'b': 33}
3,混合动态参数的情况:
In [7]: def func(*args,**kwargs): ...: print(args,kwargs) ...:In [8]: func(123,234,'adds',[5,6,7])(123, 234, 'adds', [5, 6, 7]) {}In [9]: func(a=22,b=33)() { 'a': 22, 'b': 33}In [10]: func(123,443,'2df',a=22,b=33)(123, 443, '2df') { 'a': 22, 'b': 33}
4.实参动态传参
In [20]: def func(*args,**kwargs): ...: print('%s-------%s'%(args,kwargs)) ...:In [21]: list=[12,32,'44a']In [22]: dict={ 'a':1,'b':33}In [23]: func(list,dict) #相当于把list与dict转换成一个元组([12, 32, '44a'], { 'a': 1, 'b': 33})-------{}In [24]: func(*list,**dict) #相当于func(12,32,'44a','a'=1,'b'=33)(12, 32, '44a')-------{ 'a': 1, 'b': 33}