Repolode
python

python/mypy

Python 静态类型检查器,基于类型提示在不运行代码的情况下发现类型错误。

Star
20,715
Fork
3,371
未关闭 Issue
3,232
最近提交
19小时前

这是什么?

Mypy 是一个面向 Python 的静态类型检查器。你为代码添加类型提示(PEP 484),mypy 会报告值或函数被以不兼容类型使用的位置,在程序运行前发现许多错误。

类型检查支持渐进式采用:可以逐步为代码库添加注解,在不便使用静态类型的地方保留动态类型。类型提示不会改变程序的运行方式,被 mypy 标记错误的代码仍可用普通 Python 解释器执行。类型系统支持类型推断、泛型、可调用类型、元组与联合类型以及结构化子类型。

对于大型项目,mypy 提供 daemon 模式(dmypy),可实现快速的增量检查。它可集成到 VS Code、Vim、Emacs、Sublime Text 等编辑器,也可用于 pre-commit 钩子。mypy 本身使用 mypyc 编译以提升速度。

核心功能

  • 01基于 PEP 484 类型提示检查代码,无需运行即可发现类型错误。
  • 02支持类型推断、泛型、可调用类型、元组与联合类型及结构化子类型。
  • 03支持渐进式类型标注,未标注代码可与已标注代码共存。
  • 04提供 daemon 模式(dmypy),适合大型代码库的快速增量检查。
  • 05可集成到 VS Code、Vim、Emacs、Sublime Text 等编辑器中。

适用场景

  • 在 Python 项目上线前发现与类型相关的错误。
  • 为现有的遗留 Python 代码库逐步添加类型注解。
  • 在 CI 或 pre-commit 钩子中为团队项目强制执行类型检查。

快速上手

  1. 1

    使用 pip 安装 mypy

    python3 -m pip install -U mypy
  2. 2

    对程序进行类型检查

    mypy PROGRAM

收录于专题

标签

#python#static-typing#type-checker#type-hints#linter#pep-484#typechecker#types#typing

常见问题

mypy 是什么?
Python 静态类型检查器,基于类型提示在不运行代码的情况下发现类型错误。 Mypy 是一个面向 Python 的静态类型检查器。你为代码添加类型提示(PEP 484),mypy 会报告值或函数被以不兼容类型使用的位置,在程序运行前发现许多错误。
mypy 可以免费使用吗?用的什么许可证?
mypy 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
mypy 还在维护吗?
活跃维护中。mypy 最近一次提交是在 2026年11月6日。
mypy 适合用来做什么?
在 Python 项目上线前发现与类型相关的错误。 为现有的遗留 Python 代码库逐步添加类型注解。 在 CI 或 pre-commit 钩子中为团队项目强制执行类型检查。
mypy 怎么安装和运行?
使用 pip 安装 mypy: python3 -m pip install -U mypy 对程序进行类型检查: mypy PROGRAM
在哪里获取 mypy?
源代码和安装说明在 GitHub 上:https://github.com/python/mypy

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目