前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习笔记:*args和**kwargs使用原理?

python学习笔记:*args和**kwargs使用原理?

作者头像
用户1679793
发布2018-04-28 09:55:19
1.1K0
发布2018-04-28 09:55:19
举报

一.*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'}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档