|
@@ -6,10 +6,18 @@ class measurement_unit_model (abstract_reference):
|
|
|
__base_coefficient = None
|
|
|
|
|
|
def __init__(self, base_measurement, base_coefficient):
|
|
|
- if base_measurement is not measurement_unit_model:
|
|
|
+ """
|
|
|
+ Args:
|
|
|
+ base_measurement (measurement_unit_model): Базовая единица измерения
|
|
|
+ base_coefficint (number): Базовый коэффициент
|
|
|
+ """
|
|
|
+ if not isinstance(base_measurement, measurement_unit_model)\
|
|
|
+ and base_measurement is not None:
|
|
|
raise argument_exception(
|
|
|
"Базовая единица измерения должна быть типа measurement_unit_model")
|
|
|
- self.__base_measurement_unit
|
|
|
+ if base_measurement is None:
|
|
|
+ self.__base_measurement_unit = type(self)
|
|
|
+ else: self.__base_measurement_unit = base_measurement
|
|
|
try:
|
|
|
self.__base_coefficient = float(base_coefficient)
|
|
|
except TypeError as e:
|
|
@@ -29,4 +37,12 @@ class measurement_unit_model (abstract_reference):
|
|
|
Коэффициент относительно базовой единицы измерения
|
|
|
"""
|
|
|
|
|
|
- return self.__base_coefficient
|
|
|
+ return self.__base_coefficient
|
|
|
+
|
|
|
+
|
|
|
+ def to_base_unit(self, value):
|
|
|
+ """
|
|
|
+ Значение в базовой единице измерения
|
|
|
+ """
|
|
|
+
|
|
|
+ return value * self.base_coefficient
|