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 自动安装 Rising 杀毒软件
Apr 24 Python
python实现批量转换文件编码(批转换编码示例)
Jan 23 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
python实现猜单词小游戏
May 22 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
Python实现简单的猜单词小游戏
Oct 28 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 Python
用Python将库打包发布到pypi
Apr 13 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
html中select语句读取mysql表中内容
2006/10/09 PHP
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
python动态规划算法实例详解
2020/11/22 Python
人力资源专员自我评价怎么写
2013/09/19 职场文书
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
求职信的要素有哪些呢
2013/12/26 职场文书
2014升学宴答谢词
2014/01/26 职场文书
预备党员政审材料
2014/02/04 职场文书
大学班级学风建设方案
2014/05/01 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
校园广播稿精选
2014/10/01 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书