python--*args和**kwargs在传递实参时的用法和区别
*解包:是对迭代对象进行解包,比如说列表
**解包:在传递实参时,可以通过 **
对字典对象进行解包
*解包
在传递实参时,可以通过 *
对迭代对象进行解包
def fun(a, b, *arg): print(a, b, arg) ls = [1, 2, 3, 4, 5, 6] fun(*ls) # => fun(1,2,3,4,5,6)
运行结果:
1 2 (3, 4, 5, 6)
def fun(a, *arg): print(a, arg) ls = [1, 2, 3, 4, 5, 6] fun(*ls) # => fun(1,2,3,4,5,6)
运行结果:
1 (2, 3, 4, 5, 6)
**解包
在传递实参时,可以通过 **
对字典对象进行解包
d = {'a': 1, 'b': 2, 'c': 3, 'd': 4} def fun(a,b, **kwargs): print(a,b,kwargs) fun(**d) # => fun(a=1,b=2,c=3,d=4)
运行结果:
1 2 {'c': 3, 'd': 4}