У меня есть код 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