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编程中字符串和列表的基本知识讲解
Oct 14 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Python常用知识点汇总
May 08 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
Python对列表的操作知识点详解
Aug 20 Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 Python
python新手学习可变和不可变对象
Jun 11 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
python压包的概念及实例详解
Feb 17 Python
Django 实现jwt认证的示例
Apr 30 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 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中使用虚代理实现延迟加载技术
2014/11/05 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
javascript cookies操作集合
2010/04/12 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
Python实现的字典值比较功能示例
2018/01/08 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
大学教师年终总结的自我评价
2013/10/29 职场文书
大学生学习生活的自我评价
2013/11/01 职场文书
校长寄语大全
2014/04/09 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
个人四风问题整改措施
2014/10/24 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2015年测量员工作总结
2015/05/23 职场文书
学会感恩主题班会
2015/08/12 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers