Класс реализует такие операции, как__add__, однако каждая функция, возвращающая новый экземпляр того же класса, вызывает ошибку ввода. Несовместимый тип возвращаемого значения (получено «Point», ожидается «Self») [return-value]mypy(error)
Методы, которые я пробовал:
- T = TypeVar("T", bound="A") Поскольку параметр T был привязан к A, mypy распознал бы создание экземпляра A() как подкласс T
- class A(Generic[T]) то же самое
- return cast(T, A()) Это работает, но требует, чтобы приведения были разбросаны по всему коду.
- Выше с ClassVar вместо Generic
Минимально воспроизводимый пример
from typing import Self
class A():
def meth(self, other:Self) -> Self:
return A()
Подробнее здесь: https://stackoverflow.com/questions/770 ... yping-self