Модуль string

До того как у строк появились методы, для операций над строками применялся модуль string. Приведенный пример демонстрирует, как вместо функции из string использовать метод (кстати, последнее более эффективно):

>>> import string

>>> s = "one,two,three"

>>> print string.split(s, ",")

['one', 'two', 'three']

>>> print s.split(",")

['one', 'two', 'three']

В версии Python 3.0 функции, которые доступны через методы, более не будут дублироваться в модуле string.

В Python 2.4 появилась альтернатива использованию операции форматирования: класс Template. Пример:

>>> import string

>>> tpl = string.Template("$a + $b = ${c}")

>>> a = 2

>>> b = 3

>>> c = a + b

>>> print tpl.substitute(vars())

2 + 3 = 5

>>> del c # удаляется имя c

>>> print tpl.safe_substitute(vars())

2 + 3 = $c

>>> print tpl.substitute(vars(), c=a+b)

2 + 3 = 5

>>> print tpl.substitute(vars())

Traceback (most recent call last):

 File "/home/rnd/tmp/Python–2.4b2/Lib/string.py", line 172, in substitute

  return self.pattern.sub(convert, self.template)

 File "/home/rnd/tmp/Python–2.4b2/Lib/string.py", line 162, in convert

  val = mapping[named]

KeyError: 'c'

Объект–шаблон имеет два основных метода: substitute() и safe_substitute(). Значения для подстановки в шаблон берутся из словаря (vars() содержит словарь со значениями переменных) или из именованных фактических параметров. Если есть неоднозначность в задании ключа, можно использовать фигурные скобки при написании ключа в шаблоне.

Больше книг — больше знаний!

Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом

ПОЛУЧИТЬ СКИДКУ