Python函数中*args和**kwargs来传递变长参数的用法


Posted in Python onJanuary 26, 2016

单星号形式(*args)用来传递非命名键可变参数列表。双星号形式(**kwargs)用来传递键值可变参数列表。

下面的例子,传递了一个固定位置参数和两个变长参数。

def test_var_args(farg, *args):
  print "formal arg:", farg
  for arg in args:
    print "another arg:", arg

test_var_args(1, "two", 3)

结果如下:

formal arg: 1
another arg: two
another arg: 3

这个例子用来展示键值对形式的可变参数列表,一个固定参数和两个键值参数。

def test_var_kwargs(farg, **kwargs):
  print "formal arg:", farg
  for key in kwargs:
    print "another keyword arg: %s: %s" % (key, kwargs[key])

test_var_kwargs(farg=1, myarg2="two", myarg3=3)

执行结果:

formal arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3

调用函数时,使用 *args and **kwargs

这种语法不仅仅是在函数定义的时候可以使用,调用函数的时候也可以使用

def test_var_args_call(arg1, arg2, arg3):
  print "arg1:", arg1
  print "arg2:", arg2
  print "arg3:", arg3

args = ("two", 3)
test_var_args_call(1, *args)

执行结果如下:

arg1: 1
arg2: two
arg3: 3

键值对方式:

def test_var_args_call(arg1, arg2, arg3):
  print "arg1:", arg1
  print "arg2:", arg2
  print "arg3:", arg3

kwargs = {"arg3": 3, "arg2": "two"}
test_var_args_call(1, **kwargs)

结果如下:

arg1: 1
arg2: two
arg3: 3
Python 相关文章推荐
Python 抓取动态网页内容方案详解
Dec 25 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
Python正则表达式知识汇总
Sep 22 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
python实现学员管理系统
Feb 26 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
详解Python可视化神器Yellowbrick使用
Nov 11 Python
python读取hdfs上的parquet文件方式
Jun 06 Python
python中的编码知识整理汇总
Jan 26 #Python
在MAC上搭建python数据分析开发环境
Jan 26 #Python
python黑魔法之编码转换
Jan 25 #Python
Python编程中对文件和存储器的读写示例
Jan 25 #Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 #Python
详解Python验证码识别
Jan 25 #Python
Python网站验证码识别
Jan 25 #Python
You might like
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
javascript 拖动表格行实现代码
2011/05/05 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
js实现常用排序算法
2016/08/09 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python看某个模块的版本方法
2018/10/16 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python读取yaml文件的详细教程
2020/07/21 Python
使用Python实现音频双通道分离
2020/12/25 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
个人找工作的自我评价
2013/10/17 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
音乐教师求职信
2014/06/28 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
优秀班组事迹材料
2014/12/24 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书