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