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标准库之循环器(itertools)介绍
Nov 25 Python
通过数据库向Django模型添加字段的示例
Jul 21 Python
使用Python编写简单的端口扫描器的实例分享
Dec 18 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
python向字符串中添加元素的实例方法
Jun 28 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
python脚本第一行如何写
Aug 30 Python
Python中random模块常用方法的使用教程
Oct 04 Python
python 远程执行命令的详细代码
Feb 15 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
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
原生js实现放大镜特效
2017/03/08 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
2014年小学元旦活动方案
2014/02/12 职场文书
学生会主席竞聘书
2014/03/31 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
初一学生评语大全
2014/04/24 职场文书
抵押贷款承诺书
2014/05/30 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
事业单位岗位说明书
2015/10/08 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书