新的 Python 3.6 f-strings 对我来说似乎是字符串可用性的巨大飞跃,我很乐意投入并全心全意地在可能在旧解释器上运行的新项目中采用它们。 2.7、3.3-3.5 支持会很好,但至少我想在 Python 3.5 代码库中使用它们。我如何导入 3.6 的格式化字符串文字以供旧解释器使用?
我知道像 f"Foo is {age} {units} old"
这样的格式化字符串文字没有破坏性变化,因此不会包含在 from __future__ import ...
调用中。但是更改没有向后移植(AFAIK)我需要确保我用 f-strings 编写的任何新代码都只能在 Python 3.6+ 上运行,这对很多项目来说都是一个交易破坏者。
原文由 zachd1_618 发布,翻译遵循 CC BY-SA 4.0 许可协议
Unfortunatly if you want to use it you must require
Python 3.6+
, same with the matrix multiplication operator@
andPython 3.5+
oryield from
(Python 3.4+
我认为)这些更改了代码的解释方式,因此在旧版本中导入时会抛出语法错误。这意味着您需要将它们放在旧 Python 中未导入或由
eval
或exec
保护的地方(我不推荐后两者!)。所以是的,你是对的,如果你想支持多个 python 版本,你不能轻易使用它们。