Python Glossary English

все Python 3stringпонятие

string.Formatter

форматирование

Класс-движок форматирования строк (та же логика, что str.format), допускающий переопределение поведения полей.

Синтаксис

string.Formatter().format(template, *args, **kwargs)

Напрямую он почти не нужен: для обычного форматирования f-строки и str.format() короче и быстрее. Смысл появляется, когда вы наследуетесь и переопределяете get_value() или format_field() — например, чтобы вместо KeyError подставлять заглушку для пропущенного ключа. Ещё у класса есть parse(), который разбирает шаблон на куски (литеральный текст, имя поля, спецификация, преобразование) — удобно, когда шаблон нужно проанализировать, а не отрендерить.

Примеры

import string
f = string.Formatter()
print(f.format('{0}-{1}', 'a', 'b'))   # → a-b
print(f.format('{name}: {age}', name='Ann', age=7))  # → Ann: 7
print(f.vformat('{0}+{1}', ('x', 'y'), {}))  # → x+y
print(list(f.parse('{a}')))  # → [('', 'a', '', None)]
print(f.format('{0:>5}', 'ab') == '{0:>5}'.format('ab'))  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности