Как задокументировать, что метод возвращает self?

У меня есть метод в классе, который возвращает self. Я решил задокументировать это, но понял, что не знаю что написать.

Допустим у меня есть класс 'MyCalss' с методом 'MyMethod'

class MyClass:

    def MyMethod(self, arg: int) -> ???:
        # Work
        return self

Я пытался вписать вместо ??? self и MyClass, но всегда появлялась ошибка NameError


Ответы (2 шт):

Автор решения: S. Nick
>>> class MyClass:

    def my_method(self, arg: int) -> object:
        # Work
        return self

>>> myClass = MyClass()
>>> 
>>> rezult = myClass.my_method(7)
>>> print(rezult)
<__main__.MyClass object at 0x0000000002FDE898>
→ Ссылка
Автор решения: eri

Python 3.7+: from __future__ import annotations

В Python 3.7 добавили PEP 563: postponed evaluation of annotations. Модуль, который импортировал from __future__ import annotations сохранит анотации автоматичкески:

from __future__ import annotations

class Position:
    def __add__(self, other: Position) -> Position:
        ...

Это добавят в Python 3.10

Python <3.7: use a string

Следуя to PEP 484, нужно использовать строки вместо классов:

class Position:
    ...
    def __add__(self, other: 'Position') -> 'Position':
       ...

Тут подробнее

→ Ссылка