Автор оригинала: Pankaj Kumar.
Функция Python Format () используется для преобразования приведенного объекта в строковое представление на основе предусмотренных спецификаций формата.
Формат Python ()
Функциональный синтаксис формата Python ():
format(value[, format_spec])
Эта функция вызывает __Format __ () метод ценность
объект. Мы можем определить эту функцию для наших пользовательских классов для использования функции формата () с ними.
Некоторые варианты формата для номеров:
- «+» – знак должен использоваться как с положительными, так и отрицательными числами.
- «-» – знак следует использовать только с только отрицательными числами, это поведение по умолчанию.
- % – умножено на 100 и показано в процентах
- ‘b’, ‘o’, ‘x’, ‘x’ – конвертировать целое число в двоичный, восьмеричный и шестнадцатеричный формат. Строчные буквы будут использоваться для «X», тогда как заглавные буквы будут использоваться с «X». Они применимы только для целых чисел.
- «E», «E», «F», «F» – используется с числами с плавающей точкой для знакомых и нотации с фиксированной точкой соответственно
Давайте посмотрим на некоторые примеры использования функции формата () с номерами.
# integers print(format(10, '+')) print(format(15, 'b')) print(format(15, 'x')) print(format(15, 'X')) # float print(format(.2, '%')) print(format(10.5, 'e')) print(format(10.5, 'e')) print(format(10.5345678, 'f')) print(format(10.5, 'F'))
Выход:
+10 1111 f F 20.000000% 1.050000e+01 1.050000e+01 10.534568 10.500000
Функция Python Format () для пользовательского объекта
Давайте посмотрим, как мы можем использовать функцию формата () с пользовательским объектом. Мы создадим класс и определите функцию __Format __ () для него. Эта функция должна возвращать строку, в противном случае мы получим ошибку.
class Data: id = 0 def __init__(self, i): self.id = i def __format__(self, format_spec): print('__format__ method called') if format_spec == 's': return "Data[id=%s]" % self.id if format_spec == 'i': return str(self.id) else: return 'invalid format spec'
Обратите внимание, что я форматирующий объект на основе спецификации входного формата. Если предоставляются нераспознанные спецификации формата, я возвращаю строку ошибки. Мы также можем выбрасывать исключение, которое будет обрабатываться по вызовому коду.
d = Data(20) print(format(d, 's')) print(format(d, 'i')) print(format(d, 'x'))
Выход:
__format__ method called Data[id=20] __format__ method called 20 __format__ method called invalid format spec
Ссылка: Официальная документация