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程序语言快速上手教程
Jul 18 Python
Python查看多台服务器进程的脚本分享
Jun 11 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
Nov 06 Python
Python中对列表排序实例
Jan 04 Python
Python中Django框架下的staticfiles使用简介
May 30 Python
详解python时间模块中的datetime模块
Jan 13 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
Python 判断奇数偶数的方法
Dec 20 Python
python 实现return返回多个值
Nov 19 Python
python如何快速拼接字符串
Oct 28 Python
Pytest allure 命令行参数的使用
Apr 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
php进程间通讯实例分析
2016/07/11 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
移动端js图片查看器
2016/11/17 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
pytorch数据预处理错误的解决
2020/02/20 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
2014年迎新年活动方案
2014/02/19 职场文书
高中课程设置方案
2014/05/28 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
python中urllib包的网络请求教程
2022/04/19 Python
Python测试框架pytest高阶用法全面详解
2022/06/01 Python
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript