用实例说明python的*args和**kwargs用法


Posted in Python onNovember 01, 2013

先来看一个例子:

>>> def foo(*args, **kwargs):
    print 'args =', args
    print 'kwargs = ', kwargs
    print '-----------------------'
    
>>> if __name__ == '__main__':
    foo(1, 2, 3, 4)
    foo(a=1, b=2, c=3)
    foo(1,2,3,4, a=1, b=2, c=3)
    foo('a', 1, None, a=1, b='2', c=3)

其输出结果如下:
args = (1, 2, 3, 4)
kwargs =  {}
-----------------------
args = ()
kwargs =  {'a': 1, 'c': 3, 'b': 2}
-----------------------
args = (1, 2, 3, 4)
kwargs =  {'a': 1, 'c': 3, 'b': 2}
-----------------------
args = ('a', 1, None)
kwargs =  {'a': 1, 'c': 3, 'b': '2'}
-----------------------

从以上例子可以看出,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个 dict。并且同时使用*args和**kwargs时,*args参数列必须要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。如同所示:
Python 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
python复制文件代码实现
Dec 23 Python
Python contextlib模块使用示例
Feb 18 Python
详细探究Python中的字典容器
Apr 14 Python
Django中几种重定向方法
Apr 28 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
Django框架实现逆向解析url的方法
Jul 04 Python
django 使用全局搜索功能的实例详解
Jul 18 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
使用turtle绘制五角星、分形树
Oct 06 Python
python实现Thrift服务端的方法
Apr 20 Python
python操作MongoDB基础知识
Nov 01 #Python
python操作MySQL数据库具体方法
Oct 28 #Python
Python sys.path详细介绍
Oct 17 #Python
python开发的小球完全弹性碰撞游戏代码
Oct 15 #Python
python中 ? : 三元表达式的使用介绍
Oct 09 #Python
Python 文件和输入输出小结
Oct 09 #Python
Python 错误和异常小结
Oct 09 #Python
You might like
php中try catch捕获异常实例详解
2014/11/21 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
初始Nodejs
2014/11/08 NodeJs
Jquery注册事件实现方法
2015/05/18 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
从0开始学Vue
2016/10/27 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
win10安装python3.6的常见问题
2020/07/01 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
如何选择使用结构还是类
2014/05/30 面试题
宣传保护环境的公益广告词
2014/03/13 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
小学二年级评语
2014/04/21 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
优秀教师个人材料
2014/12/15 职场文书
写给老师的保证书
2015/05/09 职场文书
导游词之湖州-太湖
2019/10/11 职场文书