Как задокументировать, что метод возвращает 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+:
→ Ссылка
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':
...