参考资料:html
写这篇文章的缘由是我在网上下载的项目中看到了.pyi文件,可是寻找了不少资料才对这些个概念(存根文件、类型检查)有了一个直观的印象。这篇随笔的目的是用最短的篇幅让你理解这些概念!测试
首先我介绍几个论断:this
1. PEP484spa
首先PEP是Python社区使用的规范化文档(就好像IETF用的rtf),PEP484这个文档是对type hint做规范化的文档!它规范化了type hint所需的语法用法...好比若是你关心stub存根文件是怎么作规范化的,你能够看参考资料2。.net
2.type checkercode
PEP484只是一个规范化的文档,没有给出具体的hint软件。事实上有一个内置模块叫typing,但它是让你用规范的语法写type hint的。不是一个类型检查器!!!htm
问:有哪些类型检查器可用?答:Pycharm内置有type checker,而且可用,明确支持stub file。mypy这个软件明确支持stub。其余的hinter,pyhinter等...我测试了一下,在vscode中效果不理想。
3.来看看,一个最简单的type hint,一个最简单的stub file长什么样
一个最简单的带annotation(type hint)的函数定义:
def greeting(name: str) -> str:
return "Hello" + name
一个最简单的stub file:
def greeting(name: str) -> str: ...</