这很容易成为基于意见的主题,但是我发现格式在大多数情况下更具可读性,并且更易于维护。可视化最终字符串的外观会更容易,而无需执行“心理串联”。例如,以下哪个更易读?
errorString = "Exception occurred ({}) while executing '{}': {}".format(
e.__class__.__name__, task.name, str(e)
)
要么:
errorString = "Exception occurred (" + e.__class__.__name__
+ ") while executing '" + task.name + "': " + str(e)
至于是否使用%
或者.format()
,我可以回答更客观:使用.format()
。%
是“旧样式”,并且根据Python文档,它们可能很快会被删除:
由于str.format()
是相当新的东西,因此许多Python代码仍然使用%
运算符。但是,由于最终会从该语言中删除这种旧的格式设置样式,str.format()
因此通常应使用。
文档的更高版本已不再提及,但这仍然.format()
是未来的方式。用它!
串联速度更快,但这不必担心。首先,使您的代码具有可读性和可维护性,然后优化以后需要优化的部分。过早的优化是万恶之源;)