我希望使用一种类型检查器来帮助我编写良好的代码,我认为 mypy 可以满足我的需求。但是我不知道如何编写以下代码。
我正在编写一个框架,重要的是不仅要为类型分配标识符,而且我仍希望类型检查器知道如何帮助我(因此不仅仅是分配TypeVar并丢失信息)。
typing.NewType完全可以正常工作,但是mypy在第7行给我一个错误:
Incompatible return value type (got "Tuple[int, int]", expected "Offset")
有没有一种方法可以像我所做的那样精确地编写它,但是以一种类型检查器能够理解的方式?
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行给我一个错误:
Incompatible return value type (got "Tuple[int, int]", expected "Offset")
有没有一种方法可以像我所做的那样精确地编写它,但是以一种类型检查器能够理解的方式?