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 相关文章推荐
Django实现自定义404,500页面教程
Mar 26 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
Oct 26 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 Python
解决python 找不到module的问题
Feb 12 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
Python pyecharts绘制条形图详解
Apr 02 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
PHP 函数学习简单小结
2010/07/08 PHP
php随机输出名人名言的代码
2012/10/07 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
2010/04/25 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
javascript实现下雨效果
2017/03/27 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
Python中asyncore的用法实例
2014/09/29 Python
Django之腾讯云短信的实现
2020/06/12 Python
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
优秀护士获奖感言
2014/02/20 职场文书
联谊会开场白
2015/06/01 职场文书
预备党员入党感想
2015/08/10 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
解析Java中的static关键字
2021/06/14 Java/Android
python实现局部图像放大
2021/11/17 Python