字符串格式表达式:
'This is %d %s example!' % (1, 'nice')
字符串格式化方法调用:
'This is {0} {1} example!'.format(1, 'nice')
我个人更喜欢方法调用(第二个例子)的可读性,但由于它是新的,因此有可能随着时间的推移,这些中的一个或另一个可能会被弃用。您认为哪个不太可能被弃用?
答案 0 :(得分:8)
既不;第一个用于很多地方,第二个用于刚刚介绍。所以问题是你更喜欢哪种风格。我实际上更喜欢基于dict
的格式:
d = { 'count': 1, 'txt': 'nice' }
'This is %(count)d %(txt)s example!' % d
确保正确的参数进入正确的位置,允许在多个地方重复使用相同的参数等。
答案 1 :(得分:6)
我以为我已经读过%
运算符已经在3.1中被弃用了,所以我坚持使用format()
函数。
答案 2 :(得分:5)
最初的想法是逐步切换到str.format()方法,同时允许两种方式:
PEP 3101:
新系统不会与现有字符串格式化技术的任何方法名称冲突,因此两个系统可以共存,直到弃用旧系统为止。
这个想法仍在继续:
我们仍然鼓励人们使用新的str.format()。 Python Issue 7343
由于原来的'%'方法计划在将来的某个时候被弃用和删除,我建议用str.format()编写新的代码。虽然目前只是个人偏好的问题。我个人更喜欢使用基于字典的格式,'%'运算符和str.format()方法都支持这种格式。