Python 3.8=
在 f 字符串中引入了说明符(请参阅此问题和拉取请求)。
它允许快速表示变量的值和名称:
from math import pi as π
f'{π=}'
# 'π=3.141592653589793'
我想在预定义的字符串上使用此功能str.format()
:
'{π=}'.format(π=π)
但是,它引发了一个例外:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'π='
有没有办法让它工作(例如使用特殊的dunder方法)?
为什么它可能有用?
- 可以为同一变量的多个值提供一个编程模板(在循环中)
- 相比之下,f-strings 必须是硬编码的;考虑国际化
- 可以在其文档字符串 () 中引用模块中定义的常量
module.__doc__.format(**vars(module)
;- 解决方法:在模块末尾定义一个 f-string 变量,
module.__doc__
在运行时覆盖。
- 解决方法:在模块末尾定义一个 f-string 变量,