这两个format()方法是否不同?如果是这样,那我怎么知道它们属于哪个类以及它们的表现如何?
format('abc')
和
'abc'.format()
答案 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'
,则会看到不同的行为。