码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记:什么事*args和**kwargs?

时间:2017-09-21 16:40:55      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:logs   code   python学习   原理   输出   错误   span   例子   --   

一.*args和**kwargs原理

 先看个例子:

def test(*args,**kwargs):
    print("args =",args)
    print("kwargs =",kwargs)
    print("----------------------------------")
if __name__ == __main__:
    test(1,5,94,564)
    test(a=1,b=2,c=3)
    test(1,2,3,4,a=1,b=2,c=3)
    test(I love python,1,None,a=1,b=2,c=3)
#输出:
args = (1, 5, 94, 564)
kwargs = {}
----------------------------------
args = ()
kwargs = {a: 1, b: 2, c: 3}
----------------------------------
args = (1, 2, 3, 4)
kwargs = {a: 1, b: 2, c: 3}
----------------------------------
args = (I love python, 1, None)
kwargs = {a: 1, b: 2, c: 3}
----------------------------------

可以看到这两个是python中的可变参数,*args表示任何多个无名参数,他是个tuple,**kwargs表示关键字参数,它是个dict。在同时使用*args和**kwargs时,必须*args参数列要在**kwargs前面,要是test(a=1,b=2,c=3,1,2,3,4)这样调用的话肯定会报语法错误的!

二.使用**kwargs创建字典:

def kw_dict(**kwargs):
    return kwargs
print(kw_dict(k1=v1,k2=v2,k3=v3))
#执行结果:
{k3: v3, k2: v2, k1: v1}

 

python学习笔记:什么事*args和**kwargs?

标签:logs   code   python学习   原理   输出   错误   span   例子   --   

原文地址:http://www.cnblogs.com/wenwei-blog/p/7569157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!