Рубрики
Без рубрики

Струны шаблона Python

Класс шаблона Python String обеспечивает способ простого строкового замещения, в котором поля шаблона замещены подходящими заменами строками

Автор оригинала: 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 и некоторыми способами регулярного и безопасного замещения строк шаблонов. Мы также видели, как мы могли бы использовать их для простых и легких строковых замещений.

Рекомендации