zoukankan      html  css  js  c++  java
  • 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. 参数解包是在实参中,利用*,**来实现

  • 相关阅读:
    过滤器
    JSTL自定义标签
    EL表达式自定义函数
    和 区别
    JSTL标签
    jsp内置对象
    Java堆、栈和常量池以及相关String的详细讲解(转)
    jsp和servlet学习总结
    JAVA多线程实现的两种方式
    redis示例
  • 原文地址:https://www.cnblogs.com/Py-king/p/10573082.html
Copyright © 2011-2022 走看看