我以前使用format()
使用字符串格式化。我见过使用%
进行格式化的代码。最近我开始使用f字符串,它们比上面提到的其他方法更灵活,更容易使用。f字符串似乎也更通用(例如,你不需要使用额外的方法,如.format()
)。相对于其他方法的优点在PEP 498中给出。
为什么f-string不是默认值?如果它是默认的,当我使用它时,我不会在字符串之前添加f
。我可以直接。换句话说,在使用f-string而不是其他字符串格式化方案时存在哪些缺陷?
这不是默认行为,因为它会完全破坏现有的代码,像这样:
template = "hello {who}"
data = {"who": "world"}
rendered = template.format(**data)
如果f-strings是默认的,你会得到:
NameError: name 'who' is not defined