以下两种format()方法有什么区别?

时间:2018-10-24 19:49:23

标签: python python-3.x

这两个format()方法是否不同?如果是这样,那我怎么知道它们属于哪个类以及它们的表现如何?

format('abc') 

'abc'.format()

1 个答案:

答案 0 :(得分:2)

您的第一段代码使用format内置功能,内置功能在docs中进行了说明。您的第二个片段使用str.format,这是str类的一种方法,在docs中记录了标准类型。这些是密​​切相关的,但是对应关系并不能完全按照您的习惯进行。

format(thing, 'format_spec')等效于'{:format_spec}'.format(thing)。格式规范默认为空字符串,因此format(thing)等效于'{:}'.format(thing),通常等效于str(thing)

format('abc')对应于'{}'.format('abc'),而不是'abc'.format()。结果恰好是等效的,因为'abc'是一个字符串,其中没有格式占位符。如果您使用'I love braces{}'3而不是'abc',则会看到不同的行为。