Код: Выделить всё
class A:
def foo(self) -> [what goes here?]:
# do something
return self
- аннотировать как A (добавление аннотаций импорта из __future__ вверху ): это означает, что метод возвращает экземпляр объекта A(), не обязательно self.
- аннотируя его как Type[A]< /code> (добавление из ввода типа импорта): это означает, что возвращаемый метод возвращает неэкземплярный A, который отдаленно не близок к самому себе.
- аннотации выполняются как Self (добавление из typing_extensions import Self): mypy выдает ошибку:
Код: Выделить всё
Variable "typing_extensions.Self" is not valid as a type [valid-type]mypy(error)
Подробнее здесь: https://stackoverflow.com/questions/721 ... turns-self