Тип для температуры Python

Наткнулся на следующую статью - https://habr.com/ru/articles/684038/?code=135bb0187e8674ff43dfc7896783e284&state=EMl6KiWizJFoCa5xa9DAwzON&hl=ru

Захотел сделать что-то подобное. Сам код и типы которые там представлены мне нравятся, кроме Celsius в виде TypeAlias для температуры. Я бы хотел сделать так, чтобы пользователь смог выбирать ту единицу измерения, которая ему нравится (metric, imperal, ...). Но я не знаю как это лучше реализовать.

Я придумал пару вариантов:

  1. Создать класс Temperature (dataclass, NamedTuple или другой) с current_temperature и с полем units типа Units(Enum) (Units.IMPERAL, Units.METRIC, ...), и сделать отдельную функцию которая будет конвертировать единицу измерения в нужную на основе этого units.
  2. Создать отдельный класс (датакласс если возможно, или абстрактный - с последним еще не работал) Celsius, где будет метод convert

Но что первый что второй вариант мне не очень нравятся. Как лучше это реализовать?


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