zoukankan      html  css  js  c++  java
  • python中的*args与**kwargs的含义与作用

    在定义函数的时候参数通常会使用 

    *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用。

    *args是非关键字参数,用于元组,**kwargs是关键字参数 (字典)
    例如下面的代码

    1 def foo(*args,**kwargs):
    2     print 'args is',args
    3     print 'kwargs is',kwargs
    4 foo(1,2)
    5 foo(k=1,w=2,a=3,r=4,g=5,s=6)
    6 foo(1,2,a=1,b=2,c=2)
    7 foo('a',1,None,a=1,b='2',c=3)

    在函数foo中定义了两个参数 
    在调用的时候,传递参数,最后的结果如下

    1 args is (1, 2)
    2 kwargs is {}
    3 args is ()
    4 kwargs is {'a': 3, 'g': 5, 'k': 1, 's': 6, 'r': 4, 'w': 2}
    5 args is (1, 2)
    6 kwargs is {'a': 1, 'c': 2, 'b': 2}
    7 args is ('a', 1, None)
    8 kwargs is {'a': 1, 'c': 3, 'b': '2'}

    在其中args为一个元组而kwags是一个字典类型。 
    这两个作为python的可变参数,也就是说args表示任何多个无名参数,然而kwags表示一个一个有着对应关系的关键字参数。 
    在使用的时候需要注意,*args要在**kwags之前,不然会发生语法错误

     
  • 相关阅读:
    php多态
    ssl certificate problem: self signed certificate in certificate chain
    test plugin
    open specific port on ubuntu
    junit vs testng
    jersey rest service
    toast master
    use curl to test java webservice
    update folder access
    elk
  • 原文地址:https://www.cnblogs.com/shudu/p/11840634.html
Copyright © 2011-2022 走看看