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 登录网站详解及实例
Apr 11 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
如何使用python进行pdf文件分割
Nov 11 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
python turtle 绘制太极图的实例
Dec 18 Python
Python 如何反方向迭代一个序列
Jul 28 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
Django权限控制的使用
Jan 07 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中的登陆login
2007/01/18 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
php跨站攻击实例分析
2014/10/28 PHP
php 删除cookie方法详解
2014/12/01 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
2010/11/16 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Python 转义字符详细介绍
2017/03/21 Python
Python文件的读写和异常代码示例
2017/10/31 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
毕业生多媒体设计求职信
2013/10/12 职场文书