все 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Сообщить о неточности