Heim >Backend-Entwicklung >Python-Tutorial >Wie verschiebe ich die F-String-Auswertung in Python für statische Vorlagen?

Wie verschiebe ich die F-String-Auswertung in Python für statische Vorlagen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 09:08:03522Durchsuche

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

F-Strings bei Bedarf interpretieren

In Python bieten F-Strings eine praktische Syntax für die String-Interpolation. Wenn Sie jedoch mit statischen Vorlagen arbeiten, die aus externen Quellen gelesen oder an anderer Stelle im Code definiert werden, kann es wünschenswert sein, die Auswertung dieser Zeichenfolgen zu verzögern.

F-String-Auswertung aufschieben

Um die Notwendigkeit zu vermeiden Für den .format(**locals())-Aufruf bei Verwendung statischer Vorlagen kann eine Python-Funktion verwendet werden. Die wie folgt definierte fstr-Funktion ermöglicht es uns, einen String als f-String auszuwerten:

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

Beispielverwendung

Mit fstr können wir eine in einer Variablen definierte statische Vorlage verwenden oder aus einer Datei lesen und Werte darin interpolieren. Betrachten Sie das folgende Beispiel:

<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>

Ausgabe:

The current name is foo
The current name is bar

Beachten Sie, dass aufgrund der Auswertung der Vorlage zur Laufzeit auch komplexe Ausdrücke innerhalb der geschweiften Klammern verwendet werden können, z. B. der Name. Upper() * 2 im folgenden Beispiel:

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

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

Ausgabe:

The current name is FOOFOO
The current name is BARBAR

Das obige ist der detaillierte Inhalt vonWie verschiebe ich die F-String-Auswertung in Python für statische Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn