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进阶教程之循环相关函数range、enumerate、zip
Aug 30 Python
Python解析最简单的验证码
Jan 07 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
Python设置在shell脚本中自动补全功能的方法
Jun 25 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
Python语言异常处理测试过程解析
Jan 08 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
浅谈pymysql查询语句中带有in时传递参数的问题
Jun 05 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
python flask框架快速入门
May 14 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 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
js静态作用域的功能。
2006/12/25 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
Python3实现从文件中读取指定行的方法
2015/05/22 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
python 实现二维列表转置
2019/12/02 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
一个SQL面试题
2014/08/21 面试题
Java文件和目录(IO)操作
2014/08/26 面试题
《长城和运河》教学反思
2014/04/14 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
2015年护士节慰问信
2015/03/23 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android