Как отложить/отложить оценку f-строк?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как отложить/отложить оценку f-строк?

Сообщение Anonymous »

Я использую строки шаблона для создания некоторых файлов, и мне нравится лаконичность новых f-строк для этой цели, позволяющих сократить мой предыдущий код шаблона примерно так:

Код: Выделить всё

template_a = "The current name is {name}"
names = ["foo", "bar"]
for name in names:
print (template_a.format(**locals()))
Теперь я могу это сделать, заменив переменные напрямую:

Код: Выделить всё

names = ["foo", "bar"]
for name in names:
print (f"The current name is {name}")
Однако иногда имеет смысл определить шаблон в другом месте — выше в коде, импортировать из файла или что-то еще. Это означает, что шаблон представляет собой статическую строку с тегами форматирования. Что-то должно произойти со строкой, чтобы интерпретатор интерпретировал ее как новую f-строку, но я не знаю, существует ли такая вещь.
Есть ли способ ввести строку и интерпретировать ее как f-строку, чтобы избежать использования вызова .format(**locals())?
В идеале я хочу иметь возможность писать такой код... (где Magic_fstring_function — вот где появляется часть, которую я не понимаю):

Код: Выделить всё

template_a = f"The current name is {name}"
# OR [Ideal2] template_a = magic_fstring_function(open('template.txt').read())
names = ["foo", "bar"]
for name in names:
print (template_a)
...с таким желаемым результатом (без двойного чтения файла):

Код: Выделить всё

The current name is foo
The current name is bar
...но фактический результат, который я получаю:

Код: Выделить всё

The current name is {name}
The current name is {name}
См. также: Как я могу использовать f-строку с переменной, а не со строковым литералом?


Подробнее здесь: https://stackoverflow.com/questions/424 ... -f-strings
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»