Как формализовать повторяющиеся отношения между непрерывными группами классов в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как формализовать повторяющиеся отношения между непрерывными группами классов в Python?

Сообщение Anonymous »

У меня есть код Python, который имеет следующую форму: < /p>

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

from dataclasses import dataclass

@dataclass
class Foo_Data:
foo: int

class Foo_Processor:
def process(self, data: Foo_Data): ...

class Foo_Loader:
def load(self, file_path: str) -> Foo_Data: ...

#----------------------------------------------------------------

@dataclass
class Bar_Data:
bar: str

class Bar_Processor:
def process(self, data: Bar_Data): ...

class Bar_Loader:
def load(self, file_path: str) -> Bar_Data: ...
У меня есть несколько экземпляров такого рода настройки данных/процессора/погрузчика, и все классы имеют одинаковый метод подписи модули, ориентированное на семейство класса (Foo, Bar и т. Д.). Существует ли питонический способ формализации этой связи между классами для обеспечения аналогичной структуры, если я решите создать спам_дата , spam_processor и spam_loader Семейство классов? Например, я хочу, чтобы что -то обеспечивало соблюдение того, что Spam_processor имеет метод Process , который принимает аргумент типа spam_data . Существует ли способ достичь этой стандартизации как -то с абстрактными классами, общими типами или какой -либо другой структурой? Разработано только для его соответствующего класса данных (то есть, foo_processor не может обработать bar_data , но можно было бы ожидать, что это может, если бы эти классы имели процессор Superclass и data , которые совместимы таким образом).


Подробнее здесь: https://stackoverflow.com/questions/789 ... asses-in-p
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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