📅  最后修改于: 2020-09-20 13:40:08             🧑  作者: Mango
format()
函数类似于String格式方法。在内部,这两种方法都调用对象的__format__()
方法。
内置format()
函数是用于内部使用__format__()
格式化对象的低级实现,而字符串 format()
是可以对多个对象字符串执行复杂格式化操作的高级实现。
format()的语法为:
format(value[, format_spec])
format()
函数采用两个参数:
格式说明符可以采用以下格式:
[[fill]align][sign][#][0][width][,][.precision][type]
where, the options are
fill ::= any character
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
访问这些链接以了解有关格式类型和对齐方式的更多信息。
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"))
输出
123
123.456790
1100
# 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
使用width选项将数字的最小宽度设置为9(包括小数点,千位逗号和符号) .3
精度运算符将给定浮点数的精度设置为3位f
类型选项,指定数字为浮点数。 # custom __format__() method
class Person:
def __format__(self, format):
if(format == 'age'):
return '23'
return 'None'
print(format(Person(), "age"))
输出
23
在这里,我们重写了Person
类的__format__()
方法。
现在,它接受format
参数,如果等于'age'
,则返回23。如果未指定格式,则返回None
。
format()
函数在内部运行Person().__format__("age")
以返回23。