我正在尝试Python 3.6。在查看新代码时,我偶然发现了这种新语法:
f"My formatting string!"
看来我们可以做这样的事情:
>>> name = "George"
>>> print(f"My cool string is called {name}.")
My cool string is called George.
任何人都可以阐明其内部运作原理吗?特别是 f 前缀字符串可以采用的变量范围是多少?
See PEP 498 文字字符串插值:
从字符串中提取的表达式在 f 字符串出现的上下文中进行计算。这意味着表达式可以完全访问局部和全局变量。可以使用任何有效的 Python 表达式,包括函数和方法调用。
因此,表达式的计算就好像它们出现在同一范围内一样;本地变量、闭包和全局变量的工作方式与同一上下文中的其他代码相同。
您将在以下位置找到更多详细信息参考文档:
格式化字符串文字中的表达式被视为用括号括起来的常规 Python 表达式,但有一些例外。不允许使用空表达式,并且lambda
表达式必须用明确的括号括起来。替换表达式可以包含换行符(例如在三引号字符串中),但不能包含注释。每个表达式都在格式化字符串文字出现的上下文中按从左到右的顺序进行计算。
由于您正在尝试 3.6 alpha 版本,请务必阅读Python 3.6 的新增功能文档。它总结了所有更改,包括相关文档和 PEP 的链接。
需要明确的是:3.6 尚未发布yet;第一个 alpha 预计要到 2016 年 5 月才会发布。请参阅3.6 发布时间表.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)