Variadic универсальный псевдоним типа - PullRequest
0 голосов
/ 09 декабря 2018

Я пишу заглушку для ввода на 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.

...