ITADN
python/mypy
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
mypy logo

Mypy:Python 的静态类型检查

Stable Version Downloads Build Status Documentation Status Chat at https://gitter.im/python/typing Checked with mypy Code style: black Linting: Ruff

有问题吗?

我们很乐意回答问题!以下是一些提问的好地方:

如果你刚开始入门, 文档类型提示速查表 也可以帮助解答问题。

如果你认为发现了一个 bug:

要报告 bug 或请求增强功能:

要讨论新的类型系统功能:

什么是 mypy?

Mypy 是 Python 的静态类型检查器。

类型检查器有助于确保你在代码中正确使用变量和函数。使用 mypy, 在你的 Python 程序中添加类型提示(PEP 484), mypy 会在你错误使用这些类型时发出警告。

Python 是一种动态语言,因此通常只有在你尝试运行代码时 才会看到错误。Mypy 是一个静态检查器,因此它可以在不运行你的程序的情况下 发现 bug!

下面是一个小例子,以引起你的兴趣:

number = input("What is your favourite number?")
print("It is", number + 1)  # error: Unsupported operand types for + ("str" and "int")

为 mypy 添加类型注解不会干扰程序原本的运行方式。可以将类型注解视为类似于注释!即使 mypy 报告了错误,你始终可以使用 Python 解释器来运行你的代码。

Mypy 的设计考虑了渐进式类型检查。这意味着你可以缓慢地为代码库添加类型注解,并且在静态类型检查不方便时,始终可以回退到动态类型检查。

Mypy 拥有强大且易于使用的类型系统,支持类型推断、泛型、可调用类型、元组类型、联合类型、结构化子类型等功能。使用 mypy 将使你的程序更易于理解、调试和维护。

请参阅文档]以获取更多示例和信息。

特别是,请参阅:

快速入门

可以使用 pip 安装 Mypy:

python3 -m pip install -U mypy

如果你想运行最新版本的代码,你可以直接从 仓库安装:

python3 -m pip install -U git+https://github.com/python/mypy.git

现在你可以像这样对程序的[静态类型部分]进行类型检查:

mypy PROGRAM

你始终可以使用 Python 解释器来运行你的静态类型 程序,即使 mypy 报告了类型错误:

python3 PROGRAM

如果你正在处理大型代码库,你可以运行 mypy 的 daemon mode,这将提供快得多的(通常不到一秒)增量更新:

dmypy run -- PROGRAM

你也可以在在线游乐场(由 Yusuke Miyazaki 开发)中尝试 mypy。

集成

Mypy 可以集成到流行的 IDE 中:

网站和文档

更多信息可在网站上获取:

https://www.mypy-lang.org/

直接跳转到文档:

https://mypy.readthedocs.io/

请跟随我们的更新日志:

https://mypy-lang.blogspot.com/

贡献

在测试、开发、文档及其他任务方面的帮助 对项目的推进非常宝贵且有用。我们为 所有经验水平的贡献者都准备了任务。

若要开始开发 mypy,请参阅 CONTRIBUTING.md

Mypyc 与 mypy 的编译版本

Mypyc 使用 Python 类型提示将 Python 模块编译为更快的 C 扩展。Mypy 本身使用 mypyc 进行编译:这使得 mypy 比解释执行快大约 4 倍!

若要安装解释执行版本的 mypy,请使用:

python3 -m pip install --no-binary mypy -U mypy

要使用 mypy 开发版本的编译版本,请直接安装来自 https://github.com/mypyc/mypy_mypyc-wheels/releases/latest 的二进制文件。

要为 mypyc 项目做出贡献,请查看位于 https://github.com/mypyc/mypyc 的问题跟踪器