python3新特性函数注释Function Annotations用法分析


Posted in Python onJuly 28, 2016

本文分析了python3新特性函数注释Function Annotations用法。分享给大家供大家参考,具体如下:

Python 3.X新增加了一个特性(Feature),叫作函数注释 Function Annotations

它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可做为函数额外的注释来用。

Python中普通的函数定义如下:

def func(a, b, c):
  return a + b + c
>>> func(1, 2, 3)
6

添加了函数注释的函数会变成如下形式:

def func(a: 'spam', b: (1, 10), c: float) -> int:
  return a + b + c
>>> func(1, 2, 3)
6

注释的一般规则是参数名后跟一个冒号(:),然后再跟一个expression,这个expression可以是任何形式。

返回值的形式是 -> int,annotation可被保存为函数的attributes。

查看所有的annotation,可通过如下语句:

>>> func.__annotations__
{'c': <class 'float'>, 'a': 'spam', 'b': (1, 10), 'return': <class 'int'>}

如果为函数增加了注释,可不可以继续使用默认参数呢?答案是肯定的。

>>> def func(a: 'spam' = 4, b: (1, 10) = 5, c: float = 6) -> int:
...  return a + b + c
...
>>> func(1, 2, 3)
6
>>> func()
15
>>> func(1, c=10)
16
>>> func.__annotations__
{'c': <class 'float'>, 'a': 'spam', 'b': (1, 10), 'return': <class 'int'>}

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python根据文件大小打log日志
Oct 09 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
python去掉行尾的换行符方法
Jan 04 Python
python与C互相调用的方法详解
Jul 14 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
python字符串string的内置方法实例详解
May 14 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
Python异常的检测和处理方法
Oct 26 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
python二维键值数组生成转json的例子
Dec 06 Python
Python绘制动态水球图过程详解
Jun 03 Python
Python绘画好看的星空图
Mar 17 Python
python中的格式化输出用法总结
Jul 28 #Python
Python中字符串的常见操作技巧总结
Jul 28 #Python
Python中不同进制的语法及转换方法分析
Jul 27 #Python
深入理解Python装饰器
Jul 27 #Python
python批量制作雷达图的实现方法
Jul 26 #Python
python 添加用户设置密码并发邮件给root用户
Jul 25 #Python
Python文件夹与文件的相关操作(推荐)
Jul 25 #Python
You might like
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php+javascript的日历控件
2009/11/19 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php实现短信发送代码
2015/07/05 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
推荐信格式要求
2014/05/09 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
优秀毕业生求职信
2014/06/05 职场文书
实验室的标语
2014/06/20 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
门店店长岗位职责
2015/04/14 职场文书
庆元旦主持词
2015/07/06 职场文书