【发布时间】:2021-01-18 22:57:52
【问题描述】:
我想使用一个类型检查器来帮助我编写好的代码,我认为mypy 可以满足我的需求。但我不明白如何编写以下代码。
import typing as tau
Offset = tau.NewType('Offset', tau.Tuple[int, int])
def f(x: int, y: int) -> Offset:
return x, y
important_for_me = Offset != tau.Tuple[int, int]
assert important_for_me
对于我正在编写的框架,重要的是不仅要为类型分配标识符,而且我仍然希望类型检查器知道如何帮助我(所以不仅仅是分配 TypeVar 并丢失信息)。
typing.NewType 工作得很好,但 mypy 在第 7 行给我一个错误:
返回值类型不兼容(得到“Tuple[int, int]”,预期 “偏移”)
有没有一种方法可以像我一样编写它,但要让类型检查器理解它?
【问题讨论】:
标签: python type-hinting mypy python-typing