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 02 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
python中global用法实例分析
Apr 30 Python
python在控制台输出进度条的方法
Jun 20 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python提取频域特征知识点浅析
Mar 04 Python
利用python实现AR教程
Nov 20 Python
Pytorch对Himmelblau函数的优化详解
Feb 29 Python
python模块如何查看
Jun 16 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
总结Python连接CS2000的详细步骤
Jun 23 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
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
redux处理异步action解决方案
2020/03/22 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
自荐信格式简述
2014/01/25 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
会计电算化实训报告
2014/11/04 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书