Привязать TypeVar к универсальным методам внутри универсального класса - PullRequest
0 голосов
/ 26 июня 2018

По какой-то причине этот код отображается как проблема:

from typing import *
T = TypeVar("T", bound="Foo")
S = TypeVar("S")

class Foo(Generic[S]):
    @classmethod
    def func(cls: Type[T]) -> T:
        return cls()

Mypy Linter отправляет меня на линию def func, говоря: Unsupported type Type["T"]. Этого не происходит, если Foo не определен как универсальный класс.

Это ошибка? Что я делаю не так?

Я использую S для различных методов, и я хочу использовать T и Type[T] позже внутри подклассов Foo.

1 Ответ

0 голосов
/ 28 июня 2018

Я считаю, что это ошибка в mypy . К сожалению, лучший обходной путь на данный момент - просто добавить к этой строке аннотацию # type: ignore, возможно, вместе со ссылкой на соответствующую проблему. Позже вы можете проверить, было ли это предупреждение исправлено, запустив mypy с флагом --warn-unused-ignores.

...