Home > Backend Development > Python Tutorial > How to Defer F-String Evaluation in Python for Static Templates?

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

Mary-Kate Olsen
Release: 2024-10-30 09:08:03
Original
529 people have browsed it

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

Interpreting F-Strings on Demand

In Python, f-strings offer a convenient syntax for string interpolation. However, when working with static templates read from external sources or defined elsewhere in code, it may be desirable to delay the evaluation of these strings.

Deferring F-String Evaluation

To avoid the need for the .format(**locals()) call when using static templates, a Python function can be utilized. The fstr function, defined as follows, allows us to evaluate a string as an f-string:

<code class="python">def fstr(template):
    return eval(f'f&quot;&quot;&quot;{template}&quot;&quot;&quot;')</code>
Copy after login

Example Usage

With fstr, we can use a static template defined in a variable or read from a file and interpolate values into it. Consider the following example:

<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>
Copy after login

Output:

The current name is foo
The current name is bar
Copy after login

Note that since the template is evaluated at runtime, complex expressions can also be used within the curly braces, such as name.upper() * 2 in the following example:

<code class="python">template_b = "The current name is {name.upper() * 2}"

for name in names:
    print(fstr(template_b))</code>
Copy after login

Output:

The current name is FOOFOO
The current name is BARBAR
Copy after login

The above is the detailed content of How to Defer F-String Evaluation in Python for Static Templates?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template