我经常使用类型提示来帮助记录代码,有时当类型签名太复杂并重复使用时,我会像这样给它们起别名:
MyType = Dict[Tuple[int,...], float] # ex: cluster & score.
Python中有没有一种方法可以参数化类型部分?一个常见的用例是当我想描述返回生成器的函数时。例如,
Generator[int, None, None]
表示法有效,但未使用的None
细节可以隐藏在新类型中。
类型上是否存在类似
partial
的函数,我们可以“锁定”一些子类型参数?或者也许这可以通过Generics
实现?从概念上讲,我正在考虑这样的事情:
MyGenType[int] = functools.partial(Generator, None, None) # pseudo code!
这样做了:
from typing import Generator, TypeVar
T = TypeVar("T")
MyGenType = Generator[T, None, None]
def fn(n: int) -> MyGenType[str]:
return (str(_) for _ in range(n))
list(fn(3)) # ['0', '1', '2']