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的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
Python Django使用forms来实现评论功能
Aug 17 Python
python实现聊天小程序
Mar 13 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
python异常触发及自定义异常类解析
Aug 06 Python
Python中私有属性的定义方式
Mar 05 Python
如何基于windows实现python定时爬虫
May 01 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
Python APScheduler执行使用方法详解
Dec 10 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
php中处理模拟rewrite 效果
2006/12/09 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
php数组去重复数据示例
2014/02/25 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript天然的迭代器
2010/10/29 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python实现excel读写数据
2021/03/02 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
python实现移动木板小游戏
2020/10/09 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
硕士研究生自我鉴定范文
2013/12/27 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
周年庆典答谢词
2015/01/20 职场文书
信访工作个人总结
2015/03/03 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
大队委员竞选稿
2015/11/20 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis