|
@@ -2,23 +2,28 @@ from src.models.abstract_reference import abstract_reference
|
|
|
from src.errors.argument_exception import argument_exception
|
|
|
|
|
|
class measurement_unit_model (abstract_reference):
|
|
|
+ # Базовая единица измерения
|
|
|
__base_measurement_unit = None
|
|
|
+ # Базовый коэффициент
|
|
|
__base_coefficient = None
|
|
|
|
|
|
- def __init__(self, base_measurement, base_coefficient):
|
|
|
+ def __init__(self, base_coefficient, base_measurement=None):
|
|
|
"""
|
|
|
Args:
|
|
|
base_measurement (measurement_unit_model): Базовая единица измерения
|
|
|
base_coefficint (number): Базовый коэффициент
|
|
|
"""
|
|
|
+ # Проверяем чтоды base_measurement был типа measurement_unit_model либо None (self-ref)
|
|
|
if not isinstance(base_measurement, measurement_unit_model)\
|
|
|
and base_measurement is not None:
|
|
|
raise argument_exception(
|
|
|
"Базовая единица измерения должна быть типа measurement_unit_model")
|
|
|
+ # Присваиваем self-ref когда не передан base_measurement
|
|
|
if base_measurement is None:
|
|
|
- self.__base_measurement_unit = type(self)
|
|
|
+ self.__base_measurement_unit = self
|
|
|
else: self.__base_measurement_unit = base_measurement
|
|
|
try:
|
|
|
+ # Пробуем конвертировать коэффициент во float
|
|
|
self.__base_coefficient = float(base_coefficient)
|
|
|
except TypeError as e:
|
|
|
raise argument_exception("Несоответствие типа базового коэффициента")
|