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进行验证码识别的一些想法
Jan 25 Python
python中pip的安装与使用教程
Aug 10 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python Django中models进行模糊查询的示例
Jul 18 Python
Django实现文件上传和下载功能
Oct 06 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
python json.dumps中文乱码问题解决
Apr 01 Python
Python 在函数上添加包装器
Jul 28 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python RSA加密的示例
Dec 09 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
大师制作的中短波矿石收音机
2020/04/02 无线电
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
python如何运行js语句
2020/09/09 Python
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
广告语设计及教案
2014/03/21 职场文书
四议两公开实施方案
2014/03/28 职场文书
学生会主席竞聘书
2014/03/31 职场文书
军训结束新闻稿
2015/07/17 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书