2019.03.21 可变参数-参数解包

是可变参数还是参数解包,取决于在形参位置还是实参位置、

1.*args将收集所有位置相关的参数,并放到一个元祖中,最后将这个元祖赋值给args

2.**kwargs指针对关键字参数

   这些关键字参数会放到一个相应的字典中,然后同样的赋值个kwargs

def demo(*args,**kwargs):
  print args,kwargs
       
       
demo()
"""
()
{}
"""


demo(1,2)
"""
(1,2)
{}
"""


demo(c='a',b='d')
"""
()
{'c': 'a', 'b': 'd'}
"""


demo(1,2,c='a',b='d')
"""
(1, 2)
{'c': 'a', 'b': 'd'}
"""

参数解包


1. *arg可以解包元组,而**kwarg则可以解包字典

def demo(a,b,c):
  print a,b,c
   
kwargs = {'a':1,'b':2,'c':3}
demo(**kwargs)
结果:1 2 3


args =(1,2,3)
demo(*args)
1 2 3


可变参数和参数解包区别

  1. 可变参数是在形参中,利用*,**来实现

  2. 参数解包是在实参中,利用*,**来实现

原文地址:https://www.cnblogs.com/Py-king/p/10573082.html