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爬虫实战之爬取京东商城实例教程
Apr 24 Python
Python基础之getpass模块详细介绍
Aug 10 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 Python
python计算两个地址之间的距离方法
Jun 09 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
python中执行smtplib失败的处理方法
Jul 01 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
Python暴力破解Mysql数据的示例
Nov 09 Python
python动态规划算法实例详解
Nov 22 Python
python批量生成身份证号到Excel的两种方法实例
Jan 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将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
JS分页效果示例
2013/10/11 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
python批量生成本地ip地址的方法
2015/03/23 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
教师实习自我鉴定
2013/12/13 职场文书
无故旷工检讨书
2014/01/26 职场文书
教师教学评估方案
2014/05/09 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
2015年大学生实习评语
2015/03/25 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
SQL Server内存机制浅探
2022/04/06 SQL Server