我正在编写一个用于mypy的python输入存根 . 有很多函数采用 Callable[[*foo], Any] 形式的回调参数,其中 *foo 表示零个或多个类型 . 我希望能够使用泛型类型别名来减少重复 .

通用类型别名记录为here,但我不知道如何将类型列表作为参数 .

我知道这可以通过具体数量的参数来完成:

T = TypeVar('T')
Callback0 = Callable[[], Any]
Callback1 = Callable[[T], Any]

def foo(f: Callback0): ...
def bar(f: Callback1[str]): ...

我想要宣布的是:

def foo(f: Callback[]): ...
def bar(f: Callback[str]): ...

如果重要,那么代码适用于Python 3.3,而我正在使用Python 3.7运行mypy .