python 传参 *args **kwargs

2019-01-23 07:41:31来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

教你函数如何传参更加方便

 

*args 和 **kwargs  可以将不定数量的参数传递给函数

*args 和 **kwargs,前者适用于 传入非键值对的可变数量的参数列表,后者适用于 传入不定长度的键值对, 作为参数传递给函数

**kwargs 就是在*args 的基础上,添加了变量名以及转变了格式

如下所示:

 

先定义一个函数:

def test(farg,arg1,arg2,arg3):
    print("farg参数为:",farg)
    print("arg1为",arg1)
    print("arg2为",arg2)
    print("arg3为",arg3)

调用函数时先用*args传参:

dic = (1,"你好","hello",9.0)    
test(*dic)

以及 用**kwargs 传参:

dic ={"farg":1,"arg1":"你好","arg2":"hello","arg3":9.0}
test(**dic)

结果输出都为:

两种方式的传参方式的不同之处在于:

传入的参数格式 一个为字典,一个为元祖,一个要加一个 星号 *  ,一个要加两个星号  **

以上的例子是将*args 和 **kwargs应用在调用函数时,如果应用在定义函数的参数时会是怎样的呢?一起来看看呗

想要定义一个函数,但又不知道传入多少个参数的时候,就可以将*args  or  **kwargs 放在函数的参数定义中了

def test(*args):
    for arg in args:
        print("{}的值为:".format(arg),arg)
    print(args[0])
    print(args[1])
    print(args[2])
    print(args[3])
    print(args[4])

结果为:

def test(**kwargs):
    for key,value in kwargs.items():
        print("{}的值为{}".format(key,value))

dic = {"1":"1","2":"2","3":3,"4":4,"5":5}
test(**dic)

结果为:

相比之下,因为**kwargs 传入的只能时键值对,字典类型,所以在处理传入的参数是也要相应地用字典的处理方式。

就看各位怎么用了,怎样顺手就那样用了。

我怀疑这博客园是不是没人了,我这博客是不是没人看了,既然你都看到这里,顺便给我点个赞呗!

 多谢多谢!哈哈哈哈哈哈哈哈


原文链接:https://www.cnblogs.com/4991tcl/p/10300232.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:#2 安装Python

下一篇:Python的串口