【问题标题】:Why isn't f-string the default in Python 3? [closed]为什么 f-string 在 Python 3 中不是默认值? [关闭]
【发布时间】:2021-12-09 12:03:41
【问题描述】:

我以前使用format() 使用字符串格式。我见过% 用于格式化的代码。最近我开始使用 f-strings,它们比上面提到的其他方法更灵活、更易于使用。 f-strings 似乎也更通用(例如,您不需要使用像.format() 这样的额外方法)。 PEP 498 中给出了与其他方法相比的优势。

为什么 f-string 不是默认值?如果它是默认的,我在使用它时不会在字符串前添加f。我可以直接。换句话说,使用 f-string 而不是其他字符串格式化方案有什么陷阱?

【问题讨论】:

  • 我投票结束这个问题,因为它有待辩论,而不是一个明确的问题。
  • Maybe 默认情况下 f-strings 会很好,但这将是一个向后兼容的中断,因此在 Python 4.0 之前它是不可能的 - 并且考虑到 Python 的糟糕程度-3.0 过渡到了 Python 中可能再也不会发生这种中断了。

标签: python python-3.x formatting f-string


【解决方案1】:

这不能是默认行为,因为它会像这样完全破坏现有代码:

template = "hello {who}"
data = {"who": "world"}
rendered = template.format(**data)

如果 f-strings 是您将获得的默认值:

NameError: name 'who' is not defined

【讨论】:

  • 你是对的。向后兼容是有意义的。
猜你喜欢
  • 2019-12-16
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 2011-01-15
  • 2022-01-03
  • 1970-01-01
相关资源
最近更新 更多