Как можно определить функцию в классе так, чтобы возвращаемый тип функции был «текущим классом», а не базовым классом. Например:
Class Parent:
def set_common_properties_from_string( input : str ) -> <WHAT SHOULD BE HERE>
# Do some stuff you want to do in all classes
return self
Class Child( Parent ):
pass
def from_file( filename : str ) -> 'Child'
return Child().set_common_properties_from_string() # The return type of set_common must be Child
Или надо как-то отлить? Если возвращаемый тип — базовый класс, то будет выдана ошибка.
Я знаю, что можно было бы просто сократить его до двух строк и добавить временную переменную для хранения Child(), но я думаю, что один вкладыш выглядит намного красивее.
Я использую mypy для проверки типов.