You are currently viewing Класс шаблонов строк в Python

Класс шаблонов строк в Python

В модуле String класс шаблона позволяет нам создавать упрощенный синтаксис для спецификации вывода. В формате используются имена-заполнители, образованные символом $ с допустимыми идентификаторами Python (буквенно-цифровые символы и символы подчеркивания). Окружение заполнителя фигурными скобками позволяет сопровождать его большим количеством буквенно-цифровых букв без пробелов. Запись $$ создает один экранированный $.

Шаблон строки Python:

Шаблон строки Python создается путем передачи строки шаблона его конструктору. Он поддерживает замены на основе$. Этот класс имеет 2 ключевых метода:

  • замена(сопоставление, **kwds): Этот метод выполняет замены с использованием словаря с процессом, аналогичным объектам сопоставления на основе ключей. аргументы ключевых слов также могут использоваться для той же цели. В случае, если сопоставление на основе ключа и аргументы ключевого слова имеют один и тот же ключ, он выдает ошибку типа. Если ключи отсутствуют, он возвращает ошибку ключа.
  • safe_substitute(сопоставление, **kwds): Поведение этого метода аналогично поведению метода замены, но он не выдает ошибку ключа, если ключ отсутствует, а возвращает заполнитель в строке результата.

Метод substitute() вызывает ошибку ключа, когда заполнитель не указан в словаре или аргументе ключевого слова. Для приложений в стиле слияния почты данные, предоставленные пользователем, могут быть неполными, и метод safe_substitute() может быть более подходящим-он оставит заполнители без изменений, если данные отсутствуют:

Ниже приведено несколько простых примеров.

Пример 1:

# A Simple Python template example
from string import Template

# Create a template that has placeholder for value of x
t = Template('x is $x')

# Substitute value of x in above template
print (t.substitute({'x' : 1}))

Выход:

x равно 1

Ниже приведен еще один пример, в котором мы импортируем имена и отметки учащихся из списка и печатаем их с помощью шаблона.

Пример 2:

# A Python program to demonstrate the
# working of the string template
from string import Template

# List Student stores the name and marks of three students
Student = [('Ram',90), ('Ankit',78), ('Bob',92)]

# We are creating a basic structure to print the name and
# marks of the students.
t = Template('Hi $name, you have got $marks marks')

for i in Student:
	print (t.substitute(name = i[0], marks = i[1]))

Выход:

Hi Ram, you have got 90 marks Hi Ankit, you have got 78 marks Hi Bob, you have got 92 marks

В приведенном ниже примере показана реализация метода safe_substitute.

Пример 3:

from string import Template

template = Template('$name is the $job of $company')

string = template.safe_substitute(name='Raju Kumar',
					job='TCE')
print(string)

Выход:

Raju Kumar is the TCE of $company

Обратите внимание, что мы не предоставили заполнителю “$company” никаких данных, но он не выдаст ошибку, а вернет заполнитель в виде строки, как описано выше.

Печать строки шаблона

Атрибут “шаблон” объекта шаблона можно использовать для возврата строки шаблона, как показано ниже:

Пример: 

t = Template('I am $name from $city')
print('Template String =', t.template)

Выход:

Template String = I am $name from $city 

Убегающий знак $

$$ может быть использован для побега и рассматривайте как часть строки.

Пример: 

template = Template('$$ is the symbol for $name')
string = template.substitute(name='Dollar')
print(string)

Выход:

$ - это символ доллара 

${Идентификатор}

${Идентификатор} работает аналогично $Идентификатору. Это удобно, когда допустимые символы идентификатора следуют за заполнителем, но не являются его частью.

Пример: 

template = Template( 'That $noun looks ${noun}y')
string = template.substitute(noun='Fish')
print(string)

Выход:

That Fish looks Fishy

Еще одно приложение для шаблона-это отделение логики программы от деталей нескольких форматов вывода. Это позволяет заменять пользовательские шаблоны XML-файлами, отчетами в виде обычного текста и веб-отчетами в формате HTML.
Обратите внимание, что существуют и другие способы печати форматированных выходных данных, таких как %d для целого числа, %f для плавающей и т. д.