使用模板字符串编写文件时,f 字符串的简洁性非常有吸引力。然而,当模板定义位于直接代码上下文之外时,就会出现困难。我们怎样才能推迟 f 字符串的计算,从而消除对 format(**locals()) 调用的需要?
输入 fstr(),一个解决这个困境的强大函数。它的工作原理如下:
<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)) # Output: # The current name is foo # The current name is bar</code>
至关重要的是,与其他建议的解决方案不同,fstr() 允许模板中更复杂的表达式,包括函数调用和属性访问:
<code class="python">template_b = "The current name is {name.upper() * 2}" for name in names: print(fstr(template_b)) # Output: # The current name is FOOFOO # The current name is BARBAR</code>
通过此解决方案,您可以有效地推迟 f 字符串的评估,保留其简洁和动态模板处理的强大功能。
以上是我们如何将 F 字符串的求值推迟到直接代码上下文之外?的详细内容。更多信息请关注PHP中文网其他相关文章!