Python Glossary English

все Python 3до 3.12Удалено из стандартной библиотекифункция

locale.format()

удалено

Форматировал одно число по правилам текущей локали. Удалён в Python 3.12 — используйте locale.format_string().

Синтаксис

locale.format(format, val, grouping=False, monetary=False)  # до 3.12

locale.format('%.2f', x, grouping=True) подставлял одно значение в шаблон с одним спецификатором % и учитывал разделители локали. Функция молча принимала лишний текст вокруг спецификатора и вела себя непредсказуемо, а format_string() делает то же надёжно и для любого шаблона. format() объявили устаревшим в Python 3.7 и в 3.12 убрали. Как переписать: locale.format(fmt, value, grouping) → locale.format_string(fmt, value, grouping); аргументы те же. Для денежных сумм есть locale.currency(), для простого числа без шаблона — locale.str().

Примеры

# Python 3.12+
import locale
try:
    locale.format('%d', 5)
except AttributeError as e:
    print(type(e).__name__)  # → AttributeError
# Python 3.12+
import locale
print(locale.format_string('%.2f', 3.14159))  # → 3.14
print(locale.format_string('%d items, %s', (3, 'ok')))  # → 3 items, ok
import locale
print(locale.format('%.2f', 3.14159))  # → 3.14

См. также

Частые ошибки

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