详解Python函数可变参数定义及其参数传递方式


Posted in Python onAugust 02, 2017

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 strip lstrip rstrip使用方法
Sep 06 Python
在Python中操作列表之List.append()方法的使用
May 20 Python
python函数形参用法实例分析
Aug 04 Python
python中的二维列表实例详解
Jun 19 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Python基于Tkinter编写crc校验工具
May 06 Python
QML实现钟表效果
Jun 02 Python
给Django Admin添加验证码和多次登录尝试限制的实现
Jul 26 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
python基础入门之字典和集合
Jun 13 Python
详解Python import方法引入模块的实例
Aug 02 #Python
Python字符串拼接的几种方法整理
Aug 02 #Python
详解 Python 读写XML文件的实例
Aug 02 #Python
Python MD5加密实例详解
Aug 02 #Python
Python 获取当前所在目录的方法详解
Aug 02 #Python
浅谈python中的数字类型与处理工具
Aug 02 #Python
Python实现的快速排序算法详解
Aug 01 #Python
You might like
php中实现简单的ACL 完结篇
2011/09/07 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
Convert Seconds To Hours
2007/06/16 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python3访问sina首页中文的处理方法
2014/02/24 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Django框架 querySet功能解析
2019/09/04 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python关于变量名的基础知识点
2020/03/03 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
小学生防溺水广播稿
2014/01/12 职场文书
高三语文教学反思
2014/01/15 职场文书
监督检查工作方案
2014/05/28 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
孔繁森观后感
2015/06/10 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL