Python中的静态类型检查器

90 阅读2分钟

静态类型检查最近在Python世界中掀起了风暴,一些工程团队大规模地实施了它,并带来了巨大的价值。但是,如果你今天在Python中编写带有类型提示的代码,你就必须手动运行静态类型检查器,作为你的CI或你的本地机器的一部分。

好了,不再是这样了!我们很高兴地宣布,Python 的静态类型检查现在可以在 DeepSource 上使用,由mypy 提供。你如何使用它呢?只需在你的.deepsource.toml 中添加一行就可以了:

{{< highlight toml "hl_lines=8">}} 版本 = 1

[[analyzers]] name = 'python' enabled = true

[analyzers.meta] type_checker = "mypy" {{< /highlight>}}。

如果你碰巧在你的版本库中为你的打字配置设置了一个mypy.ini ,DeepSource将尊重它。请在文档中阅读所有关于它的内容。

类型检查器检测到的问题

在写这篇文章的时候,检查器检测到了80多个与打字有关的问题,这些问题都被归类为Type Check 。下面是一些问题,让你了解一下。

与错误的类型提示实现有关的问题

  • 不一致的使用type annotationtype comment
  • 生成器函数的无效返回type hint
  • 不支持的Type 声明
  • 使用已废弃的类型提示

类型注释代码中的问题

  • 在一个函数中缺少返回值
  • 意外的返回值
  • 不兼容的返回值类型

其他问题

  • 不必要的压制类型检查问题
  • 无效的类型注释

抑制类型检查问题

要让类型检查器在某一行提出的问题沉默,可以在该行的末尾添加# type: ignore# skipcq: TYP-001 。要阅读更多关于沉默问题的内容,请关注这篇文章

随着类型检查器的加入,我们的Python分析器现在更加强大了,我们已经迫不及待地想让你使用它了!请查看文档,了解关于启用Python分析器类型检查器的更多细节。