from src.models.abstract_reference import abstract_reference from src.validation.validator import validator class measurement_unit_model (abstract_reference): # Базовая единица измерения __base_measurement_unit = None # Базовый коэффициент __base_coefficient = None # Валидатор __vtor = validator() def __init__(self, name, base_coefficient = 1, base_measurement=None): """ Args: base_measurement (measurement_unit_model): Базовая единица измерения base_coefficint (number): Базовый коэффициент """ self.__vtor.check_type_any(base_measurement, measurement_unit_model, None) self.__vtor.check_number(base_coefficient) self.__base_measurement_unit = base_measurement self.__base_coefficient = base_coefficient super().__init__(name) @property def base_measurement_unit(self): """ Базовая единица измерения """ if self.__base_measurement_unit is None: return self return self.__base_measurement_unit @property def base_coefficient(self): """ Коэффициент относительно базовой единицы измерения """ return self.__base_coefficient def to_base_unit(self, value): """ Значение в базовой единице измерения """ return value * self.base_coefficient