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编程中的文件操作攻略
Oct 16 Python
独特的python循环语句
Nov 20 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
python登录WeChat 实现自动回复实例详解
May 28 Python
Python常用数据类型之间的转换总结
Sep 06 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
python代码实现图书管理系统
Nov 30 Python
python - asyncio异步编程
Apr 06 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
FCKeditor添加自定义按钮
2008/03/27 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
PHP框架性能测试报告
2016/05/08 PHP
thinkphp分页实现效果
2016/10/13 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
Vue中使用sass实现换肤功能
2018/09/07 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
python调用cmd复制文件代码分享
2013/12/27 Python
用Python编写简单的定时器的方法
2015/05/02 Python
使用Python对Access读写操作
2017/03/30 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
在python中bool函数的取值方法
2018/11/01 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
《蜗牛》教学反思
2014/02/18 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
千与千寻观后感
2015/06/04 职场文书
结婚典礼主持词
2015/06/29 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang