warning, error.
Как лучше всего хранить эти строки?
Моё решение:
В модуле const.py я создал класс FlashCategories, у которого определил одноимённые поля с соответствующими значениями:
class FlashCategories:
message = "message"
info = "info"
...
И теперь, в app.py я могу обращаться к этим значениям следующим образом:
flash(const.FlashMessages.something, const.FlashCategories.something)
В примере выше something заменяется на необходимое поле соответствующих классов.
Как видно из примера, содержимое сообщений я передаю аналогично. Насколько хороша такая практика? Есть ли в питоне что-то, что более подходит под этот случай? По сути, FlashMessages/FlashCategories это своеобразные дата-классы, но за одним исключением, что они статичны, нет динамики в их изменении, а причина их использовать довольно банальна - вынос строковых литералов из роут-веток, чтобы их содержимое не мешало анализу логики, и повторные использования одного и того же содержимого/категории в разных местах.
Ещё раз обозначу вопрос: насколько хорошим является подход хранения через класс? Есть ли что-то лучше?
Лучше енумы
Понял, спасибо огромное!
Здесь есть 1 момент: использование enum заставляет указывать .value у каждого поля, как это обойти?
Не обязательно, и можно переопрежелить чтоб такого не было
Определив call или getitem?
repr или str
Обсуждают сегодня