详解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操作Elasticsearch数据索引的教程
Apr 08 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
Django获取应用下的所有models的例子
Aug 30 Python
WxPython实现无边框界面
Nov 18 Python
python3 实现调用串口功能
Dec 26 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
python实现井字棋小游戏
Mar 04 Python
Python pickle模块常用方法代码实例
Oct 10 Python
python 带时区的日期格式化操作
Oct 23 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 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
3.从实例开始
2006/10/09 PHP
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
apache php模块整合操作指南
2012/11/16 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Python GUI编程完整示例
2019/04/04 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
存储过程的优点有哪些
2012/09/27 面试题
简述DNS进行域名解析的过程
2013/12/02 面试题
init进程的作用
2015/08/20 面试题
《莫高窟》教学反思
2014/02/25 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
建设工程授权委托书
2014/09/22 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
教师自查自纠材料
2014/10/14 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android