Python 3.6 добавит буквенную интерполяцию строк аналогично интерполяции строк в Ruby.Начиная с этой версии Python (выпуск которой запланирован на конец 2016 года), вы сможете включать выражения в «f-строки», например,
name = "Spongebob Squarepants"
print(f"Who lives in a Pineapple under the sea? {name}.")
До версии 3.6, ближайшейВы можете получить это
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? %(name)s." % locals())
Оператор %
может использоваться для интерполяции строк в Python.Первый операнд является строкой, которую нужно интерполировать, второй может иметь разные типы, включая «отображение», отображение имен полей на значения, которые должны быть интерполированы.Здесь я использовал словарь локальных переменных locals()
, чтобы сопоставить имя поля name
с его значением в качестве локальной переменной.
Тот же код, использующий метод .format()
из последних версий Python, будет выглядеть следующим образом:
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? {name!s}.".format(**locals()))
Существует также класс string.Template
:
tmpl = string.Template("Who lives in a Pineapple under the sea? $name.")
print(tmpl.substitute(name="Spongebob Squarepants"))