在 Python 中,f 字符串提供了一种方便的字符串插值语法。但是,当使用从外部源读取或在代码中其他位置定义的静态模板时,可能需要延迟这些字符串的评估。
为了避免需要对于使用静态模板时的 .format(**locals()) 调用,可以使用 Python 函数。 fstr 函数定义如下,允许我们将字符串计算为 f 字符串:
<code class="python">def fstr(template): return eval(f'f"""{template}"""')</code>
使用 fstr,我们可以使用变量中定义的静态模板或从文件中读取并将值插入其中。考虑以下示例:
<code class="python">template_a = "The current name is {name}" names = ["foo", "bar"] for name in names: print(fstr(template_a)) # Evaluates the template with the current 'name'</code>
输出:
The current name is foo The current name is bar
请注意,由于模板是在运行时计算的,因此也可以在大括号内使用复杂表达式,例如 name。 upper() * 2 在以下示例中:
<code class="python">template_b = "The current name is {name.upper() * 2}" for name in names: print(fstr(template_b))</code>
输出:
The current name is FOOFOO The current name is BARBAR
以上是如何在 Python 中延迟静态模板的 F 字符串计算?的详细内容。更多信息请关注PHP中文网其他相关文章!