Возможно ли из класса-потомка получить класс-родитель?
Возможно, но все равно потребуется передавать атрибуты от потомка к родителю:
from dataclasses import dataclass
import typing
import io
# Определение базового класса для хранения информации о файле и ID объекта
@dataclass
class EjectedObjectDataFileNameAndObjectID:
file_name: str # Имя файла
object_id: int # ID объекта
# Определение класса для хранения изображений
@dataclass
class EjectedObjectDataImages:
images: typing.List[io.BytesIO] # Список изображений в формате BytesIO
# Класс, наследующий оба вышеуказанных класса и добавляющий дополнительные атрибуты
@dataclass
class EjectedObjectData(EjectedObjectDataImages, EjectedObjectDataFileNameAndObjectID):
uuid: str # Уникальный идентификатор
position: typing.Tuple[int, int] = (0, 0) # Позиция объекта (по умолчанию (0, 0))
sorted: bool = False # Флаг, указывающий, отсортирован ли объект (по умолчанию False)
# Метод для создания экземпляра родительского класса из текущего экземпляра
def to_parent(self) -> EjectedObjectDataFileNameAndObjectID:
# Возвращаем новый экземпляр EjectedObjectDataFileNameAndObjectID,
# используя атрибуты текущего экземпляра
return EjectedObjectDataFileNameAndObjectID(self.file_name, self.object_id)
# Пример использования:
# Создаем экземпляр EjectedObjectData
data = EjectedObjectData(["image1", "image2"], "some_file", 123, "some_uuid")
# Получаем экземпляр родительского класса из экземпляра потомка
parent_data = data.to_parent()
# Выводим информацию о родительском классе
print(parent_data)