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关闭windows进程的方法
Apr 18 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
Python文件处理
Feb 29 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
Python之list对应元素求和的方法
Jun 28 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
Python适配器模式代码实现解析
Aug 02 Python
Django框架模板用法入门教程
Nov 04 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
Python处理mysql特殊字符的问题
Mar 02 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 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保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
JS的反射问题
2010/04/07 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
js select option对象小结
2013/12/20 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
简单的python后台管理程序
2017/04/13 Python
Python处理Excel文件实例代码
2017/06/20 Python
python虚拟环境迁移方法
2019/01/03 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
荷叶母亲教学反思
2014/04/30 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis