Из 68 человек, 50 выбрало f-string. Наверное я бы тоже выбрал если бы не один кейс. И так был небольшой проект, в котором почти все строки с параметром использовали f-string (где-то начинали использовать шаблонизатор) Проект начал стремительно расти. И понадобилась сделать простую задачу. Добавить мультиязычность. Вот и проблема, где-то были простые оповещения и это f-string. Все раскидано по коду. Рефракторинг занял много времени. После этого я решил что всегда буду использовать str.format() если строка отправляется пользователю. Тут я могу просто указать глобально переменную и подставить все что нужно. Почему не оператор % ? Мне кажется str.format() более понятный и читабельный чем % . Неизвестно кто будет читать этот код . Если это будет не опытный Джун он сможет быстро сориентироваться. Поэтому рекомендую вам использовать str.format() если эта строка отправляется пользователю. Потому что если потом понадобится добавить мультиязычность вам придётся помучиться.
Как тимлид проекта на 8ми языках, в т.ч. один из них rtl, не согласен.
Ну таки стоит понимать, что выбор зависит от юзкейса. f-стринги и str.format так же плохо подойдут для форматирований строк, где и так есть { } символы - % будет удобнее. Но не у всех есть такие случаи, равно как и мультиязычность.
А если использовать именованные переменные ? Разве у format() будут проблемы с { } ?
При добавление в проект переводов ты перезжаешь на n\p\gettext и все стандартные питоньи способы форматирования строк тебя перестают волновать. А если вы для мультияхычности перехали с f'' на .format, обложив ифами if lang == 'ru', то у меня для вас плохие новости, скоро вы захотите третий язык
При добавление в проект переводов ты перезжаешь на n\p\gettext и все стандартные питоньи способы форматирования строк тебя перестают волновать. А если вы для мультияхычности перехали с f'' на .format, обложив ифами if lang == 'ru', то у меня для вас плохие новости, скоро вы захотите третий язык
Никто не говорит, что это супер решение которое осталось.
Ну не знаю как кто, а я использую configparser и там храню сообщения. Потом подгружаю их. И если f-string, мне надо найти строку скорее всего в коде. А тут в *.ini просто нашёл блок и поменял.
лишние телодвижения, еще и следить надо чтоб названия параметров не рассинхронились, все равно придется чекнуть еще в коде, чтобы посмотреть что все по старому, что строчка используется только там где ты думаешь ну и т.п. гораздо хуже чем иметь в коде
лишние телодвижения, еще и следить надо чтоб названия параметров не рассинхронились, все равно придется чекнуть еще в коде, чтобы посмотреть что все по старому, что строчка используется только там где ты думаешь ну и т.п. гораздо хуже чем иметь в коде
Возможно я просто привык и для меня это норм. Для кого-то сложно.
Мультиязычность и правда лучше нормальными инструментами делать, а не питоньими строками. Зачем же нужны фу-строки я так и не понял. Зачем-то смешали данные с кодом и все этому радуются. Впрочем, эти люди на фастапи пишут — удивляться особо нечему...
Мультиязычность и правда лучше нормальными инструментами делать, а не питоньими строками. Зачем же нужны фу-строки я так и не понял. Зачем-то смешали данные с кодом и все этому радуются. Впрочем, эти люди на фастапи пишут — удивляться особо нечему...
У меня в проекте все заказчики внешние бай дизайн. И тащить туда инструмент, который конфигурируется на уровне импортирования с глобальным контекстом... У меня ещё есть чувство прекрасного.