Дочерний класс используется для определения моделей.
Один из методов родительского класса принимает экземпляр дочернего класса в качестве аргумента. Как указать это в подсказке типа?
Здесь псевдокод:
Код: Выделить всё
import pandas as pd
class ParentPandasModel(pd.DataFrame):
"""Parent class for all the models that are based on pandas"""
@classmethod
def validate_dataframe(cls, arg1: Instance_of_child) -> bool:
""" Checks if the instance has all needed columns etc."""
...
return is_data_frame_valid
class ChildModel(ParentPandasModel):
""" dataframe model """
column1 = "price"
column2 = "number"
column3 = "date"
ChildModel.validate_dataframe(df)
Это работает нормально. Однако я не знаю, что поставить в подсказку типа arg1, чтобы у меня не шел линтер. сумасшедший. Что мне туда поместить?
Я должен был понимать, что размещение метода в ChildModel не является вариантом, если у меня слишком много моделей и я хочу определить этот метод только один раз в родительском классе, поэтому что все они наследуют этот метод.
Я также не хочу указывать точную дочернюю модель, для которой всем дочерним моделям понадобится этот метод (нажатие «|» будет слишком большим накладным расходом.
Пробывал различные типы импорта/типирование/любой, но безрезультатно.
Подробнее здесь: https://stackoverflow.com/questions/775 ... s-argument