Beim Erstellen von Dateien mithilfe von Vorlagenstrings ist die Prägnanz von F-Strings äußerst reizvoll. Es treten jedoch Schwierigkeiten auf, wenn sich Vorlagendefinitionen außerhalb des unmittelbaren Codekontexts befinden. Wie können wir die Auswertung von F-Strings verschieben, sodass der Aufruf format(**locals()) nicht mehr erforderlich ist?
Geben Sie fstr() ein, eine leistungsstarke Funktion, die dieses Dilemma löst. So funktioniert es:
<code class="python">def fstr(template): return eval(f'f"""{template}"""')</code>
Um diese Funktion zu verwenden, rufen Sie einfach fstr() für die gewünschte Vorlage auf:
<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>
Entscheidend ist, dass fstr() im Gegensatz zu anderen vorgeschlagenen Lösungen dies zulässt komplexere Ausdrücke innerhalb der Vorlage, einschließlich Funktionsaufrufen und Attributzugriff:
<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>
Mit dieser Lösung können Sie die Auswertung von F-Strings effektiv verschieben und ihre leistungsstarken Funktionen für eine prägnante und dynamische Vorlagenverarbeitung beibehalten.
Das obige ist der detaillierte Inhalt vonWie können wir die Auswertung von F-Strings über den unmittelbaren Codekontext hinaus verschieben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!