Python函数可变参数定义及其参数传递方式实例详解


Posted in Python onMay 25, 2015

本文实例讲述了Python函数可变参数定义及其参数传递方式。分享给大家供大家参考。具体分析如下:

python中 函数不定参数的定义形式如下:

1、func(*args)

传入的参数为以元组形式存在args中,如:

def func(*args): 
  print args 
>>> func(1,2,3) 
(1, 2, 3) 
>>> func(*[1,2,3]) #这个方式可以直接将一个列表的所有元素当作不定参数
传入(1, 2, 3)

2、func( **kwargs)

传入的参数为以字典形式存在args中,如:

def func(**kwargs): 
  print kwargs 
>>> func(a = 1,b = 2, c = 3) 
{'a': 1, 'c': 3, 'b': 2} 
>>> func(**{'a':1, 'b':2, 'c':3}) #这个方式可以直接将一个字典的所有键值对当作关键字参数传入 
{'a': 1, 'c': 3, 'b': 2}

3、也可以两者混用

func(*args, **kwargs)

传入的顺序必须和定义顺序相同,这里是先不定参数列表,再是关键字参数字典,如:

def func(*args, **kwargs): 
  print args 
  print kwargs 
>>> func(1,2,3) 
(1, 2, 3) 
{} 
>>> func(*[1,2,3]) 
(1, 2, 3) 
{} 
>>> func(a = 1, b = 2, c = 3) 
() 
{'a': 1, 'c': 3, 'b': 2} 
>>> func(**{'a':1, 'b':2, 'c':3}) 
() 
{'a': 1, 'c': 3, 'b': 2} 
>>> func(1,2,3, a = 4, b=5, c=6) 
(1, 2, 3) 
{'a': 4, 'c': 6, 'b': 5}</span> 
#这样跳跃传递是不行的 
>>> func(1,2,3, a=4, b=5, c=6, 7) 
SyntaxError: non-keyword arg after keyword arg

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
Python实现的飞速中文网小说下载脚本
Apr 23 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
python使用opencv读取图片的实例
Aug 17 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
python3实现高效的端口扫描
Aug 31 Python
Python基于pip实现离线打包过程详解
May 15 Python
Python通过文本和图片生成词云图
May 21 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 Python
python 实现批量图片识别并翻译
Nov 02 Python
如何在Python中创建二叉树
Mar 30 Python
Python易忽视知识点小结
May 25 #Python
Python中类型关系和继承关系实例详解
May 25 #Python
pymssql数据库操作MSSQL2005实例分析
May 25 #Python
python动态参数用法实例分析
May 25 #Python
Python文件去除注释的方法
May 25 #Python
python提取页面内url列表的方法
May 25 #Python
python实现批量改文件名称的方法
May 25 #Python
You might like
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP进程通信基础之信号
2017/02/19 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
python读取excel表格生成erlang数据
2017/08/26 Python
python如何定义带参数的装饰器
2018/03/20 Python
详解Django 时间与时区设置问题
2019/07/23 Python
学习标兵获奖感言
2014/02/20 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
监察建议书格式
2014/05/19 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
自荐信格式模板
2015/03/27 职场文书
个人催款函范文
2015/06/23 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电