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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 Python
使用Python读取大文件的方法
Feb 11 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Python中Flask-RESTful编写API接口(小白入门)
Dec 11 Python
Pytorch之view及view_as使用详解
Dec 31 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
django 多数据库及分库实现方式
Apr 01 Python
openCV提取图像中的矩形区域
Jul 21 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 冒泡排序 交换排序法
2011/05/10 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
vue中appear的用法
2017/08/17 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
python生成随机mac地址的方法
2015/03/16 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
50岁生日感言
2014/01/23 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
公安学专业求职信
2014/07/27 职场文书
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技