Введите подсказку в родительском классе, которая принимает дочерний класс в качестве аргумента.Python

Программы на Python
Anonymous
Введите подсказку в родительском классе, которая принимает дочерний класс в качестве аргумента.

Сообщение Anonymous »

У меня есть родительский класс для моделей фреймов данных pandas. Этот класс содержит полезные функции для проверки и т. д.
Дочерний класс используется для определения моделей.
Один из методов родительского класса принимает экземпляр дочернего класса в качестве аргумента. Как указать это в подсказке типа?
Здесь псевдокод:

Код: Выделить всё

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"
Смысл состоит в том, чтобы проверить df кадра данных, вызвав:
ChildModel.validate_dataframe(df)
Это работает нормально. Однако я не знаю, что поставить в подсказку типа arg1, чтобы у меня не шел линтер. сумасшедший. Что мне туда поместить?
Я должен был понимать, что размещение метода в ChildModel не является вариантом, если у меня слишком много моделей и я хочу определить этот метод только один раз в родительском классе, поэтому что все они наследуют этот метод.
Я также не хочу указывать точную дочернюю модель, для которой всем дочерним моделям понадобится этот метод (нажатие «|» будет слишком большим накладным расходом.
Пробывал различные типы импорта/типирование/любой, но безрезультатно.

Подробнее здесь: https://stackoverflow.com/questions/775 ... s-argument

Вернуться в «Python»