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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 Python
Python实时获取cmd的输出
Dec 13 Python
Python中的sort()方法使用基础教程
Jan 08 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
分享6个隐藏的python功能
Dec 07 Python
python批量赋值操作实例
Oct 22 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
如何用 Python 制作一个迷宫游戏
Feb 25 Python
浅谈Python协程asyncio
Jun 20 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支持页面回退的两种方法[转]
2007/02/14 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
网页自动跳转代码收集
2009/09/27 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
工程造价与管理专业应届生求职信
2013/11/23 职场文书
学生自我评价范文
2014/02/02 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
道路施工安全责任书
2014/07/24 职场文书
保密工作承诺书
2014/08/29 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
详解Python生成器和基于生成器的协程
2021/06/03 Python
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers