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 ответов

64 просмотра

Лучше енумы

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта