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中文编码那些事
Jun 25 Python
零基础写python爬虫之爬虫编写全记录
Nov 06 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
Django框架 信号调度原理解析
Sep 04 Python
python 函数中的参数类型
Feb 11 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
详解pandas apply 并行处理的几种方法
Feb 24 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 Python
简单介绍Python的第三方库yaml
Jun 18 Python
Python集合set()使用的方法详解
Mar 18 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
BBS(php & mysql)完整版(七)
2006/10/09 PHP
一个简单实现多条件查询的例子
2006/10/09 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
python爬取51job中hr的邮箱
2016/05/14 Python
python实现拓扑排序的基本教程
2018/03/11 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
python英语单词测试小程序代码实例
2019/09/09 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
PyTorch的torch.cat用法
2020/06/28 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
团队会宣传标语
2014/10/09 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
学校通报表扬范文
2015/05/04 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
react 路由Link配置详解
2021/11/11 Javascript