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}