Den inbyggda formatmetoden () returnerar en formaterad representation av det angivna värdet som styrs av formatspecifikatorn.
Den format()
funktion liknar metoden String format. Internt kallar båda metoderna __format__()
för ett objekt.
Medan den inbyggda format()
funktionen är en implementering på låg nivå för att formatera ett objekt med __format__()
internt, är string format()
en högre nivåimplementering som också kan utföra komplexa formateringsåtgärder på flera objektsträngar.
Syntaxen för formatet () är:
format (värde (, format_spec))
format () Parametrar
Den format()
funktionen tar två parametrar:
- värde - värde som måste formateras
- format_spec - Specifikationen för hur värdet ska formateras.
Formatspecifikatorn kan vara i formatet:
((fill) align) (sign) (#) (0) (width) (,) (. precision) (type) där alternativen är fill :: = any character align :: = "" | "=" | "^" tecken :: = "+" | "-" | "" bredd :: = heltal precision :: = heltalstyp :: = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Besök dessa länkar för att lära dig mer om formattyper och justering.
Returvärde från format ()
Den format()
returnerar en formaterad representation av ett givet värde som anges av formatet specifikation.
Exempel 1: Nummerformatering med format ()
# d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))
Produktion
123 123,456790 1100
Exempel 2: Nummerformatering med fyllning, justering, tecken, bredd, precision och typ
# integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))
Produktion
* + 1 234 0123,4570
Här, när 1234
vi formaterar heltalet , har vi angett formateringsspecifikatorn *>+7,d
. Låt oss förstå varje alternativ:
*
- Det är fyllteckenet som fyller de tomma utrymmena efter formatering>
- Det är rätt justeringsalternativ som justerar utsträngen till höger+
- Det är teckenalternativet som tvingar numret som ska undertecknas (med ett tecken till vänster)7
- Det är breddalternativet som tvingar talet att ta minst 7 bredd, andra mellanslag fylls med fylltecken,
- Det är tusentals operatörer som placerar ett komma mellan alla tusentals.d
- Det är typalternativet som anger att numret är ett heltal.
När 123.4567
vi formaterar flytpunktens nummer har vi angett formatspecifikatorn ^-09.3f
. Dessa är:
^
- Det är mittjusteringsalternativet som justerar utmatningssträngen till mitten av det återstående utrymmet-
- Det är tecknet som bara tvingar negativa siffror att visa tecknet0
- Det är karaktären som placeras i stället för de tomma utrymmena.9
- Det är breddalternativet som ställer in minsta bredd för numret till 9 (inklusive decimal, tusentals komma och tecken).3
- Det är precisionsoperatören som ställer in precisionen för det angivna flytande numret till 3 platserf
- Det är typalternativet som anger att numret är en flottör.
Exempel 3: Använda format () genom att åsidosätta __format __ ()
# custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
Produktion
23
Här har vi åsidosatt __format__()
klassens metod Person
.
Den accepterar nu en format
parameter och returnerar 23 om den är lika med 'age'
. Om inget format anges, None
returneras.
Den format()
funktionen går internt Person().__format__("age")
för att återvända 23.