如何在 Python 中延迟静态模板的 F 字符串计算?

Mary-Kate Olsen
发布: 2024-10-30 09:08:03
原创
458 人浏览过

How to Defer F-String Evaluation in Python for Static Templates?

按需解释 F 字符串

在 Python 中,f 字符串提供了一种方便的字符串插值语法。但是,当使用从外部源读取或在代码中其他位置定义的静态模板时,可能需要延迟这些字符串的评估。

推迟 F 字符串评估

为了避免需要对于使用静态模板时的 .format(**locals()) 调用,可以使用 Python 函数。 fstr 函数定义如下,允许我们将字符串计算为 f 字符串:

<code class="python">def fstr(template):
    return eval(f'f&quot;&quot;&quot;{template}&quot;&quot;&quot;')</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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!