【问题标题】:Is there a python linter that checks types according to type hints?是否有根据类型提示检查类型的 python linter?
【发布时间】:2019-10-06 13:08:35
【问题描述】:

我正在寻找一个 Python linter,它可以根据代码中的类型提示检查类型的使用情况。
目的是运行单一检查来验证样式、逻辑和类型错误。
我需要在 CI 服务器上运行它,并在开发过程中作为文件观察者。
例如,我需要这段代码来输出错误,因为传递了错误的类型参数 -

def double(x: int):
    return x * 2


result = double('hello')

我检查了 PyLint 和 flake8 的文档,找不到任何对类型检查的支持。
使用 PyLint,我还验证了检查上述代码时没有错误。

【问题讨论】:

  • What are Type hints in Python 3.5 的可能重复项。特别是,请参阅“使用 mypy 进行类型提示”部分——mypy 是 Python 的类型检查器,或多或少与 PEP 484 一起编写。另外两个相对成熟的类型检查器您也可以尝试检查是 pytypepyre
  • 也许我应该让问题更清楚。我正在寻找 linter 和类型检查器之间的组合。 mypy 只是一个类型检查器 - 它不会在非 pep8 样式或未使用的变量等上失败。我发布了这个问题,希望有一些工具可以在 CI 服务器中运行以检查两个 apsect 上的代码。
  • 我认为通常的策略是在 CI 管道中将 linter 和类型检查器作为单独的程序运行。我想您可以寻找某种将类型检查器与您的 linter 捆绑在一起的插件(例如 flake8-mypy 插件之类的东西),但是我并没有真正看到这种捆绑的价值。

标签: python python-3.x static-analysis type-hinting


【解决方案1】:

是的,有,它叫mypy

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 2017-04-08
    • 2019-05-10
    • 2021-12-08
    • 1970-01-01
    • 2014-12-06
    • 2021-12-25
    • 2023-01-24
    • 1970-01-01
    相关资源
    最近更新 更多