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 相关文章推荐
DataFrame中的object转换成float的方法
Apr 10 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
Python中正则表达式的用法总结
Feb 22 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
python对Excel的读取的示例代码
Feb 14 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
如何在python中处理配置文件代码实例
Sep 27 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
PyTorch 实现L2正则化以及Dropout的操作
May 27 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
DHTML Slide Show script图片轮换
2008/03/03 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
python构建自定义回调函数详解
2017/06/20 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python实现微信防撤回神器
2019/04/29 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Django中的AutoField字段使用
2020/05/18 Python
如何基于Python按行合并两个txt
2020/11/03 Python
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
取保候审保证书
2014/04/30 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
班主任工作实习计划
2015/01/16 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
浅谈PHP7中的一些小技巧
2021/05/29 PHP