Автор оригинала: Pankaj Kumar.
Струны шаблона Python
Python’s Шаблон строки Класс Обеспечивает способ простых строковых замещений, в котором поля шаблона замещают подходящие замену строки, предоставленными пользователем.
Иногда это может быть предпочтительно, чтобы упростить заменить строку, а не использовать другие строки формата для замещения. Шаблонные строки используются именно для этой цели, чтобы легко заменить строки минимальными хлопьями и без исключения.
Строковые правила шаблона
Поддержка шаблонов Строки $ На основании замены, которые соответствуют следующим правилам:
- $$ -> Это escape Sequence для одного
$
Символ, поскольку он будет классифицирован как модификатор в противном случае. $
Идентификатор -> Это заместитель заполнителя.$
{идентификатор} -> эквивалентно$
Идентификатор Отказ Используется, когда действительные символы появляются после заполнителя, но не являются частью заполнителя.- Любой другой вид
$
поднимет ValueError Исключение.
Вот пример, чтобы продемонстрировать базовый замену шаблона:
from string import Template # Create a template with 'name' as the placeholder template = Template('Hello $name!') student = 'Amit' # Perform the template substitution and print the result print(template.substitute(name=student))
Выход
Hello Amit!
Вот еще один фрагмент, чтобы продемонстрировать другие правила замены шаблона:
from string import Template # Create a template with $CODE as the placeholder # The $$ is to escape the dollar sign template = Template('The generated Code is ${CODE}-$$100') code = 'H875' # Perform the template substitution and print the result print(template.substitute(CODE=code))
Выход
The generated Code is H875-$100
Строковые методы класса шаблонов
1. Шаблон конструктор
Мы уже столкнулись с этим в нашем более раннем снайпер, где мы создаем наш строковый шаблон объекта, используя Шаблон (template_String)
Отказ
Формат: template_Object (template_String)
2. Заменитель (отображение, ** кварг)
Это также часть нашего более раннего фрагмента, которая выполняет замену шаблона от сопоставление к ключевым словам аргументы кварги Отказ
Второй аргумент является ** kwargs
Поскольку мы пройдем аргументы ключевых слов в качестве заполнителей за замену. Следовательно, он передан как словарь для замены шаблона.
Чтобы проиллюстрировать эту точку, мы покажем, как пройти словарь в строку шаблона.
from string import Template template = Template('The shares of $company have $state. This is $reaction.') # Perform the template substitution and print the result print(template.substitute(state = 'dropped', company='Google', reaction='bad')) # Perform substitution by passing a Dictionary dct = {'state': 'risen', 'company': 'Apple', 'reaction': 'good'} print(template.substitute(**dct)) # Incomplete substitution results in a KeyError try: template.substitute(state = 'dropped') except KeyError: print('Incomplete substitution resulted in KeyError!')
Выход
The shares of Google have dropped. This is bad. The shares of Apple have risen. This is good. Incomplete substitution resulted in KeyError!
3. Safe_Substitute (сопоставление, ** kwargs)
Это похоже на Заменитель ()
За исключением того, что если заполнителей отсутствуют от сопоставление и кварги вместо поднимая KeyError
Исключение, первоначальный заполнитель появится в результирующей строке нетронутой.
from string import Template template = Template('The shares of $company have $state. This is $reaction.') print(template.safe_substitute(company='Google'))
Выход
The shares of Google have $state. This is $reaction.
Как видите, нет KeyError
в результате чего в результате неполной, но освобождение от ошибок. Вот почему замена «безопасна».
Атрибуты класса шаблонов
Объект шаблона имеет Шаблон
атрибут, который возвращает строку шаблона. Хотя это может быть изменено, это хорошая практика, чтобы не изменить это значение атрибута.
from string import Template t = Template('Hello $name, are you $cond?') print(t.template)
Выход
Hello $name, are you $cond?
Заключение
В этой статье мы узнали о классе Strate Template и некоторыми способами регулярного и безопасного замещения строк шаблонов. Мы также видели, как мы могли бы использовать их для простых и легких строковых замещений.