设为首页 加入收藏

TOP

python 传参 *args **kwargs
2019-01-22 12:10:19 】 浏览:83
Tags:python 传参 args kwargs

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

 

*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 传入的只能时键值对,字典类型,所以在处理传入的参数是也要相应地用字典的处理方式。

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

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

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python开发爆破字典 下一篇#1 初识Python

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目