0

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__在运行时覆盖。
4

0 回答 0