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 NumPy库安装使用笔记
May 18 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
python实现字符串加密成纯数字
Mar 19 Python
Python循环结构的应用场景详解
Jul 11 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
python中的列表与元组的使用
Aug 08 Python
python with (as)语句实例详解
Feb 04 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Python字符串查找基本操作代码案例
Oct 27 Python
python实现会员信息管理系统(List)
Mar 18 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运行环境配置的详解
2013/06/04 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
JS实现页面打印功能
2017/03/16 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
5种Python单例模式的实现方式
2016/01/14 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python实现名片管理器的示例代码
2019/12/17 Python
Python龙贝格法求积分实例
2020/02/29 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
Python实现GIF图倒放
2020/07/16 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
应届生财务管理求职信
2013/11/06 职场文书
学校安全检查制度
2014/01/27 职场文书
高三家长寄语
2014/04/03 职场文书
金融管理专业求职信
2014/07/10 职场文书
单位租房协议书范本
2014/12/04 职场文书
骨干教师个人总结
2015/02/11 职场文书
大学学生会辞职信
2015/05/13 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫