所有文章2026 年现在真的要运行五个类型检查器吗Pyrefly v1.0 发布类型正确代码错误类型检查器捕获的惊人错误将 Pyrefly 类型检查添加到你的智能循环中Python 类型检查器比较速度和内存使用情况如何在语言服务器中支持笔记本通过删除未注释代码实现 100% 类型覆盖塑造 Pyrefly 的 Pyre 经验教训Python 类型检查器比较类型规范一致性pandas 的公共 API 现在已实现类型完整Python 类型检查器比较空容器推断Pyrefly 捆绑的第三方存根让 Pyrefly 诊断速度提升 18 倍4 种 Pyrefly 类型缩小模式让类型检查更直观2025 年借助 Pyrefly 新的 Pydantic 集成轻松完成数据验证Pyrefly 测试版发布将 NumPy 的类型完整度得分提升至近 90%用 Pyrefly 让你的 Python IDE 焕然一新为何如今的 Python 开发者热衷于类型提示介绍 Pyrefly - 一款全新的 Python 类型检查器和 IDE 体验工具现在真的要运行五个类型检查器吗2026 年 6 月 3 日阅读时长 6 分钟。Marco GorelliQuansight Labs 提出疑问Mypy、Pyrefly、Pyright、ty、Zuban未来可能还会有更多……库维护者该如何应对呢简而言之优先在测试套件中尽可能多地运行类型检查器至少在源代码中运行一个。最重要的类型检查以及为何你可能搞错了重点很多包在类型检查方面存在错误做法常见的是在源代码上运行类型检查器却让测试代码保持无类型状态这种做法本末倒置。假设维护一个 Python 包用户真正关心的是公共 API 以及与它交互的体验。在内部源代码上运行类型检查器主要测试内部逻辑而用户使用哪种类型检查器不由开发者决定。通过在测试套件中尽可能多地运行类型检查器可确保包的公共 API 能让更多用户顺利使用。Polars 的故事Polars 是一个现代数据框库自 2020 年推出后在数据科学领域掀起热潮。作为重度用户希望让其开发者体验更好。将 Pyrefly 添加到 Polars 的持续集成任务中遇到一些障碍Pyrefly 通常比 mypy 更严格实例化变量时需重写部分代码或添加更明确的类型注释还发现了一些错误多数错误的修复随 v1 版本发布。以 DataType.__eq__ 函数为例为满足多个类型检查器代码中出现大量类型忽略注释代码库易被污染。与其让所有内部代码通过多个类型检查器检查不如先测试主要类型检查器与库的公共 API 配合情况这样更有用且简单。以 DataType.__eq__ 的测试代码为例mypy、Pyrefly、Pyright、ty、Zuban 对其进行类型检查时都未报告错误说明它们对公共 API 的效果达成一致。让 Pyrefly 在整个 Polars 测试套件上运行相对轻松也在探索在其源代码中使用 Pyrefly但这是一项更大的工作需逐步解决。那我的源代码呢为什么会有这么多类型检查器类型规范概述了类型检查器应遵循的标准规则但有些方面较模糊不同类型检查器会做出不同设计决策。有些类型检查器严格会产生误报但保护免受潜在错误有些更宽松允许逐步添加类型信息。在对源代码进行类型检查时需考虑在严格和宽松之间找到平衡点。Pyrefly 不仅严格可配置而且速度快、符合规范是不错的选择。若在项目中使用遇到问题可报告。总结如今有 5 个备受关注的 Python 类型检查器mypy、Pyrefly、Pyright、ty、Zuban。库维护者在源代码上运行这 5 个检查器会带来过多维护工作还会让代码充斥类型忽略注释。将精力花在在测试中运行多个类型检查器上更有价值可测试用户与库交互时的类型检查效果。社区与支持可加入 Discord、在 Github 上提交问题、参加办公时间。法律声明包含隐私政策、使用条款、数据政策、Cookie 政策。