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删除特定文件的方法
Jul 30 Python
详解python基础之while循环及if判断
Aug 24 Python
Python之reload流程实例代码解析
Jan 29 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
Python高斯消除矩阵
Jan 02 Python
python3用PIL把图片转换为RGB图片的实例
Jul 04 Python
django Admin文档生成器使用详解
Jul 22 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
Django前后端分离csrf token获取方式
Dec 25 Python
Python 制作自动化翻译工具
Apr 25 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的异常处理类Exception的使用及说明
2012/06/13 PHP
php获取文件大小的方法
2014/02/26 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
js 省地市级联选择
2010/02/07 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
Js 随机数产生6位数字
2010/05/13 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
Python字符串格式化输出方法分析
2016/04/13 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
超市周年庆活动方案
2014/08/16 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
安徽导游词
2015/02/12 职场文书
税务会计岗位职责
2015/04/02 职场文书
科级干部培训心得体会
2016/01/06 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python