Найти - Пользователи
Полная версия: Почему в Python нет интерполяции строк?
Начало » Python для новичков » Почему в Python нет интерполяции строк?
1 2 3
snake_eater
палю годноту

http://govnokod.ru/18148

import inspect
def phpformat(fmt):
    return fmt.format(**inspect.getouterframes(inspect.currentframe())[1][0].f_locals)
surname = "Бонд"
name = "Джеймс"
num = 7
print(phpformat("{surname}. {name} {surname}. Агент {num:03d}."))
snake_eater
ihorgorobets
Это не дает быдлокодерам плодить дыры
про говнокод только не надо заливать.

https://www.python.org/dev/peps/pep-0498/
только посмотрите - еcли там будет возможность вставлять не только переменнные но и выражения, тогда можно будет выкинуть все сторонние говно-шаблонизаторы и использовать возможности из коробки. как в PHP.
так что ждем выхода 3.6 и надеемся что примут
doza_and
snake_eater
тогда можно будет выкинуть все сторонние говно-шаблонизаторы и использовать возможности из коробки. как в PHP.

Многие вещи можно будет делать из коробки если при интерполяции будет производится оценка выражений, это да. Но вы бы почитали что умеют делать шаблонизаторы, думаю тогда ваш оптимизм по поводу их выкидывания сильно уменьшился. В c/c++ принято выносить важный функционал в библиотеки. Потом они кочуют в стандартную библиотеку. Думаю такой подход оправдан. Написать import jinja2 или import mako меня совсем не напрягает.

Встроенная интерполяция обладает тем преимуществом что выражение используется в том месте где оно используется, что безусловно большой плюс. Но явность операции интерполяции строк все равно полезна в больших проектах.
Приемлемый компромис встроенная функция:
i=2;
def f(k):
   return k*3
print "some output {i:xxx} --{f(33)+i}".f() 
snake_eater
doza_and
Написать import jinja2 или import mako меня совсем не напрягает.
если все было так просто.

но надо еще делать pip install jinja2
надо изучить язык шаблонизатора.

pip install -U jinja2
и конечно же прогонять перед этим тесты каждый раз
ZZZ
Да, snake_eater, всё именно так просто.
4kpt_III
snake_eater
все сторонние говно-шаблонизаторы и использовать возможности из коробки. как в PHP.

Какие Вы шаблонизаторы знаете? У некоторых из них вообще другой принцип работы (сборка и вставка происходит по другим принципам). Поэтому нет, они все равно будут использоваться. Мало того, по наворотам, все же языку их тяжеловато будет догнать. Возможно создание стандартной библиотеки, которая сочетала бы в себе лучшие практики, хотя мне все же такое событие кажется сомнительным. Ну и единый механизм не всегда есть хорошо. Все хотелки в нем все равно учесть не получится.

P.S. Ну и не приводите PHP в пример. Глаз режет.
FishHook
snake_eater
надо изучить язык шаблонизатора
Ужас! Потратить целых два часа!

4kpt_III
Ну и не приводите PHP в пример
Не все знают, что для ПХП тоже есть шаблонизаторы. Сами пэхэпэшники не хотят смешивать в одну кучу логику и отображение, но зачем то активно рекламируют эту заразу где только можно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB