Вграденият метод format () връща форматирано представяне на дадената стойност, контролирана от спецификатора на формата.
Най format()
функция е подобна на метода на String формат. Вътрешно и двата метода извикват __format__()
метод на обект.
Докато вградената format()
функция е изпълнение на ниско ниво за форматиране на обект, използващ __format__()
вътрешно, низът format()
е изпълнение от по-високо ниво, способно да изпълнява сложни операции за форматиране и на множество обектни низове.
Синтаксисът на format () е:
формат (стойност (, формат_спец))
format () Параметри
Най- format()
функцията се извършва по два параметъра:
- стойност - стойност, която трябва да бъде форматирана
- format_spec - Спецификацията за начина на форматиране на стойността.
Спецификаторът на формата може да бъде във формат:
((запълване) подравняване) (знак) (#) (0) (ширина) (,) (. прецизност) (тип), където опциите са запълване :: = всеки знак за подравняване :: = "" | "=" | "^" знак :: = "+" | "-" | "" ширина :: = цялостна точност :: = цяло число тип :: = "b" | "в" | "d" | "д" | "E" | "е" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Посетете тези връзки, за да научите повече за типовете формати и подравняването.
Връщане на стойност от формат ()
Най format()
функцията връща форматиран представяне на дадена стойност, определена от спецификатора формат.
Пример 1: Форматиране на числа с формат ()
# d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))
Изход
123 123,456790 1100
Пример 2: Форматиране на числа с попълване, подравняване, знак, ширина, точност и тип
# integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))
Изход
* + 1,234 0123,4570
Тук, когато форматирахме цялото число 1234
, посочихме спецификатора за форматиране *>+7,d
. Нека разберем всяка опция:
*
- Това е символът за запълване, който запълва празните пространства след форматирането>
- Това е правилната опция за подравняване, която подравнява изходния низ вдясно+
- Това е опцията за знак, която принуждава номера да бъде подписан (със знак вляво)7
- Това е опцията за ширина, която принуждава числото да вземе минимална ширина от 7, останалите интервали ще бъдат запълнени от символ за запълване,
- Именно операторът хиляди поставя запетая между всички хиляди.d
- Това е опцията за тип, която определя числото е цяло число.
Когато форматирахме номера с плаваща запетая 123.4567
, ние посочихме спецификатора на формата ^-09.3f
. Това са:
^
- Това е опцията за централно подравняване, която подравнява изходния низ към центъра на оставащото пространство-
- Това е опцията за знак, която принуждава да показват знак само отрицателни числа0
- Това е символът, който се поставя на мястото на празните пространства.9
- Това е опцията за ширина, която определя минималната ширина на числото на 9 (включително десетична запетая, хиляди запетая и знак).3
- Именно операторът за прецизност задава точността на дадения плаващ номер на 3 местаf
- Това е опцията за тип, която указва, че числото е поплавък.
Пример 3: Използване на format () чрез заместване на __format __ ()
# custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
Изход
23.
Тук сме заменили __format__()
метода на класа Person
.
Сега той приема format
параметър и връща 23, ако е равен на 'age'
. Ако не е посочен формат, None
се връща.
Функцията се format()
изпълнява вътрешно, за Person().__format__("age")
да върне 23.