Введите подсказку в родительском классе, которая принимает дочерний класс в качестве аргумента.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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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