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中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
python中PIL安装简单教程
Apr 21 Python
python django事务transaction源码分析详解
Mar 17 Python
Django实现的自定义访问日志模块示例
Jun 23 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
python实现与redis交互操作详解
Apr 21 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
Keras自定义IOU方式
Jun 10 Python
python神经网络学习 使用Keras进行简单分类
May 04 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
杏林同学录(一)
2006/10/09 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
js密码强度校验
2015/11/10 Javascript
js实现网页收藏功能
2015/12/17 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
优秀大学生推荐信范文
2013/11/28 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
cf收人广告词
2014/03/14 职场文书
公共场所禁烟标语
2014/06/25 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
小程序实现侧滑删除功能
2022/06/25 Javascript