169 похожих чатов

Использую flash-сообщения с категориями. Следующие значения являются рекомендуемыми: message, info,

warning, error.

Как лучше всего хранить эти строки?

Моё решение:
В модуле const.py я создал класс FlashCategories, у которого определил одноимённые поля с соответствующими значениями:

class FlashCategories:
message = "message"
info = "info"
...


И теперь, в app.py я могу обращаться к этим значениям следующим образом:
flash(const.FlashMessages.something, const.FlashCategories.something)
В примере выше something заменяется на необходимое поле соответствующих классов.
Как видно из примера, содержимое сообщений я передаю аналогично. Насколько хороша такая практика? Есть ли в питоне что-то, что более подходит под этот случай? По сути, FlashMessages/FlashCategories это своеобразные дата-классы, но за одним исключением, что они статичны, нет динамики в их изменении, а причина их использовать довольно банальна - вынос строковых литералов из роут-веток, чтобы их содержимое не мешало анализу логики, и повторные использования одного и того же содержимого/категории в разных местах.

Ещё раз обозначу вопрос: насколько хорошим является подход хранения через класс? Есть ли что-то лучше?

6 ответов

19 просмотров

Лучше енумы

Xineo- Автор вопроса
Айван
Лучше енумы

Понял, спасибо огромное!

Xineo- Автор вопроса

Здесь есть 1 момент: использование enum заставляет указывать .value у каждого поля, как это обойти?

Xineo
Здесь есть 1 момент: использование enum заставляет...

Не обязательно, и можно переопрежелить чтоб такого не было

Xineo- Автор вопроса

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Карта сайта