from abc import ABC, abstractmethod

class Cloth(ABC):
    '''
    Реализовать проект расчета суммарного расхода ткани на производство одежды.
    Основная сущность (класс) этого проекта — одежда, которая может иметь определенное название.
    К типам одежды в этом проекте относятся пальто и костюм. У этих типов одежды существуют параметры: размер
    (для пальто) и рост (для костюма). Это могут быть обычные числа: V и H, соответственно.
    Для определения расхода ткани по каждому типу одежды использовать формулы: для пальто (V/6.5 + 0.5),
    для костюма (2 * H + 0.3). Проверить работу этих методов на реальных данных.
    Реализовать общий подсчет расхода ткани. Проверить на практике полученные на этом уроке знания:
    реализовать абстрактные классы для основных классов проекта, проверить на практике работу декоратора @property.
    '''

    def __init__(self, h, v):
        self.h = h
        self.v = v

    @abstractmethod
    def tissue_consumption(self):
        ...

    @property
    def summer_tissue_consumption(self):
        return (self.v / 6.5 + .5) + (2 * self.h + .3)

class Coat(Cloth):

    @property
    def tissue_consumption(self):
        return self.v / 6.5 + .5


class Suit(Cloth):

    @property
    def tissue_consumption(self):
        return 2 * self.h + .3