Тип для температуры Python
Наткнулся на следующую статью - https://habr.com/ru/articles/684038/?code=135bb0187e8674ff43dfc7896783e284&state=EMl6KiWizJFoCa5xa9DAwzON&hl=ru
Захотел сделать что-то подобное. Сам код и типы которые там представлены мне нравятся, кроме Celsius
в виде TypeAlias
для температуры. Я бы хотел сделать так, чтобы пользователь смог выбирать ту единицу измерения, которая ему нравится (metric, imperal, ...). Но я не знаю как это лучше реализовать.
Я придумал пару вариантов:
- Создать класс
Temperature
(dataclass
,NamedTuple
или другой) сcurrent_temperature
и с полемunits
типаUnits(Enum)
(Units.IMPERAL
,Units.METRIC
, ...), и сделать отдельную функцию которая будет конвертировать единицу измерения в нужную на основе этогоunits
. - Создать отдельный класс (датакласс если возможно, или абстрактный - с последним еще не работал)
Celsius
, где будет методconvert
Но что первый что второй вариант мне не очень нравятся. Как лучше это реализовать?