Оптимизация кода с константами

Есть код, в котором в классе CentrifugalLiquidInjector находятся функции для проведения расчетов. Можно ли как-то оптимизировать этот код и сделать его более понятным?

import math
from dataclasses import dataclass
from enum import Enum


class RelativeLength(Enum):
    MAX_RELATIVE_LENGTH = 6
    MIN_RELATIVE_LENGTH = 1.5


@dataclass(frozen=True, slots=True)
class CentrifugalLiquidInjector:
    outer_diameter_injector: float
    side_wall_thickness_injector: float
    number_input_tangential_holes: float

    diameter_input_tangential_holes: float
    length_input_tangential_holes: float

    @property
    def diameter_twisting_chamber_injector(self) -> float:
        return self.outer_diameter_injector - 2 * self.side_wall_thickness_injector

    @property
    def relative_length_tangential_hole(self) -> float:
        value_relative_length = self.length_input_tangential_holes / self.diameter_input_tangential_holes
        if RelativeLength.MIN_RELATIVE_LENGTH.value <= value_relative_length <= \
                RelativeLength.MAX_RELATIVE_LENGTH.value:
            return value_relative_length
        else:
            raise ValueError(f"Значение {value_relative_length} относительной длины тангенциального отверстия, "
                             f"не входит в диапозон [{RelativeLength.MIN_RELATIVE_LENGTH.value}..."
                             f"{RelativeLength.MAX_RELATIVE_LENGTH.value}]")

Ответы (1 шт):

Автор решения: Amgarak

Как по мне, можно просто наделать локальных переменных с короткими и лаконичными названиями:

@property
def relative_length_tangential_hole(self) -> float:
    diameter = self.diameter_input_tangential_holes
    length = self.length_input_tangential_holes

    value_relative_length = length / diameter
    min_relative_length = RelativeLength.MIN_RELATIVE_LENGTH.value
    max_relative_length = RelativeLength.MAX_RELATIVE_LENGTH.value

    if min_relative_length <= value_relative_length <= max_relative_length:
        return value_relative_length
    else:
        raise ValueError(f"Значение {value_relative_length} относительной длины тангенциального отверстия, "
                         f"не входит в диапазон [{min_relative_length}...{max_relative_length}]")

На мой вкус, стало читабельней.

→ Ссылка