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计算圆周长、面积、球体体积并画出圆
Apr 08 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
JSON Web Tokens的实现原理
Apr 02 Python
python编写分类决策树的代码
Dec 21 Python
获取python文件扩展名和文件名方法
Feb 02 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
Python socket模块方法实现详解
Nov 05 Python
Python函数式编程指南:对生成器全面讲解
Nov 19 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
快速一键生成Python爬虫请求头
Mar 04 Python
python manim实现排序算法动画示例
Aug 14 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学习之function的用法
2012/07/14 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
浅谈PHP中的
2016/04/23 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Python中关于字符串对象的一些基础知识
2015/04/08 Python
python 显示数组全部元素的方法
2018/04/19 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
python标记语句块使用方法总结
2019/08/05 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
暑期实习鉴定
2013/12/16 职场文书
书法培训心得体会
2014/01/05 职场文书
2014年化验员工作总结
2014/11/18 职场文书
单位委托函范文
2015/01/29 职场文书
置业顾问岗位职责
2015/02/09 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
校园安全学习心得体会
2016/01/18 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL