为什么 f 字符串不是 Python 3 中的默认值?



我以前使用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

相关内容

  • 没有找到相关文章

最新更新