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