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开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
常见python正则用法的简单实例
Jun 21 Python
解决Python requests 报错方法集锦
Mar 19 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
Python去除字符串前后空格的几种方法
Mar 04 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python JSON编解码方式原理详解
Jan 20 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
如何用Python和JS实现的Web SSH工具
Feb 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
用Zend Encode编写开发PHP程序
2010/02/21 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP运行模式的深入理解
2013/06/03 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
python matlibplot绘制多条曲线图
2021/02/19 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
美发活动策划书
2014/01/14 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
后备干部培训方案
2014/05/22 职场文书
写给老师的感谢信
2015/01/20 职场文书
员工自我评价范文
2015/03/11 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python