1. 参数注解

当写好一个函数以后,想为这个函数的参数添加一些额外的信息,这样的话,其他的使用者就可以清楚的知道这个函数应该怎么使用,这个时候可以使用函数参数注解。

函数参数注解能提示程序员应该怎样正确使用这个函数。

比如,下面这个函数就是一个被注解了的函数:

def add(x:int, y:int) -> int:
return x + y

Python解释器不会对这些注解添加任何的语义。

它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何的差距。

但是,对于那些阅读代码的人来说,就有很大的帮助。

第三方工具和框架可能会对这些注解添加语义,同时它们也会出现在文档中。

def add(x:int, y:int) -> int:
return x + y help(add)

执行结果为:

Help on function add in module __main__:
add(x:int, y:int) -> int

你可以使用任意类型的对象给函数添加注解(例如数字,字符串,对象实例等等), 但是使用类或者字符串会比较好。

2. annotations

函数的注解只存储在函数的__annotations属性中。例如:

def add(x:int, y:int) -> int:
return x + y
print(add.__annotations__)

执行结果为:

{'x': <class 'int'>, 'y': <class 'int'>, 'return': <class 'int'>}

尽管注解的使用方法可能会有很多中,但是它们的主要用途还是文档。

因为Python并没有类型声明,通常来讲仅仅通过阅读源码很难知道应该传递什么样的参数给这个函数。

而使用函数注解就能给代码阅读人员更多的提示,让他们可以更好的使用函数。

  

最新文章

  1. C++构造函数和析构函数
  2. struts之动态方法调用改变表单action属性
  3. BizTalk开发系列(三十)单向端口实现请求-响应
  4. android View 绘制完成监听
  5. Yii中CDbCriteria常用方法
  6. ASP.NET MVC 入门3、Routing
  7. 0118——UIButtton
  8. Triangle (第8届山东省赛的某题)
  9. Java引入的一些新特性
  10. LODOP中的纯文本和超文本打印项
  11. Codeforces Round #501 (Div. 3) D. Walking Between Houses
  12. Flume配置Replicating Channel Selector
  13. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十一):服务网关(Zuul)
  14. HTTP 协议详解(转载)
  15. vmstat工具
  16. 基于Django-Cookie的CBV和FBV的用户验证装饰器
  17. Python len() 方法
  18. h5 禁止微信内置浏览器调整字体大小方法
  19. SQLSERVER中常用的系统视图
  20. Javascript:splice() 方法浅析

热门文章

  1. Spring Cloud Alibaba学习笔记(8) - RocketMQ术语与概念
  2. leetcode算法题(4)
  3. centos7.x安装docker-ce
  4. day24-python之面向对象
  5. visualSVN server 安装成功,但是无法连接,url打不开
  6. arm9交叉编译工具链
  7. Dubbo面试
  8. CentOS7安装CDH 第十章:CDH中安装Spark2
  9. java中javamail收发邮件实现方法
  10. CSS之特性相关