Comments 11
"There should be one-- and preferably only one --obvious way to do it." (c)
f-строки и есть тот самый obvious way. Конкуренты проигрывают по всем возможным пунктам настолько, что не использовать f-строки глупо.
Я писал на Питоне много лет, и одно могу сказать точно: нет легче способа разжечь срач, чем спросить о форматировании строк.
Я даже троллил коллег: использовал сишный оператор `"foo %s bar %d" % ('kek', 1)` и наблюдал километры срача между участниками.
Раньше такие срачи имели место быть, но после появления f-строк есть резон использовать другие варианты?
Минусов у f-строк не много. Например, они не подходят для динамического форматирования(с заранее неизвестным форматом строки и, возможно, набором переменных), но это редкий случай использования(само собой, речь идёт о простых строках, где jinja это слишком).
И нельзя отметить, что автодополнение и подсветка ошибок вашей среды разработки, будет прекрасно работать для f-строк.
Да я не оспариваю преимуществ f-строк. Я пошутил, что тезис из Дзена конфликтует с зоопарком форматирования. И когда у вас команда из 10 человек, каждый с такой же уверенностью высказывает другое мнение => срач.
f-строки не поддерживают динамическое форматирование осознанно. f-строка позволяет выполнять произвольный код, и возможность подставлять туда шаблоны создает очень большое окно для уязвимостей.
Однако эта возможность может быть реализована в сторонних библиотеках f-строк, например в моей.
... нет легче способа разжечь срач, чем спросить о форматировании строк.
Хм, как насчет tab vs. spaces?
У них есть одна проблема, если надо переводить проект на Питоне на другие языки, то babel их не поддерживает и придётся везде их менять на format()
Действительно. Сначала хотел написать, мол это babel такой плохой, но прочитав это issue понял, что:
PEP 498 completely ignores localization as if you never need to use localized programs with string interpolation.
Интересно, в других языках дела с переводами интерполируемых строк обстоят также или есть какое-то решение, которое разработчики питона почему-то проигнорировали.
Ничего не сказано про локализацию.
Немножко о форматировании строк в питоне