Я пишу заглушку для ввода на Python для использования с mypy.Существует множество функций, которые принимают параметры обратного вызова в форме Callable[[*foo], Any]
, где *foo
представляет ноль или более типов.Я хотел бы иметь возможность использовать псевдоним универсального типа для уменьшения повторения.
Псевдонимы универсального типа задокументированы здесь , но я не понимаю, как можно было бы получить списоктипов в качестве параметра.
Я знаю, что это можно сделать с конкретным числом аргументов:
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, и я использую mypy с Python 3.7.