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