小编Met*_*bec的帖子

Python:强制类型提示

我想知道是否有办法在 Python 项目中强制执行类型提示?

目前,我正在使用mypy 预提交挂钩.pre-commit-config.yaml

- repo: https://github.com/pre-commit/mirrors-mypy
  rev: v0.931
  hooks:
    - id: mypy
Run Code Online (Sandbox Code Playgroud)

使用这个钩子,由于调用函数时的类型错误,我将(正确地)无法提交以下代码add

def add(a: int, b: int) -> int:
    return a + b

add(a=1.0, b=2.0)
Run Code Online (Sandbox Code Playgroud)

但是,使用上面的mypy预提交钩子组合,类型提示仍然没有完全强制执行,我将能够在不使用类型提示的情况下提交以下代码:

def add(a, b):
    return a + b
Run Code Online (Sandbox Code Playgroud)

我也很好奇,在动态类型语言(例如 Python)中强制执行类型提示是否是一个好主意?我知道我可以为我的项目选择一些静态类型语言(例如 Java),但是,我想使用带有强制类型提示的 Python 的原因是因为这允许我依赖现有的 Python 库(例如 Tensorflow),同时确保由于函数签名中指定了类型,所以编写的代码质量更好。

python pre-commit-hook mypy python-typing

2
推荐指数
1
解决办法
2935
查看次数

标签 统计

mypy ×1

pre-commit-hook ×1

python ×1

python-typing ×1