Maison > développement back-end > Tutoriel Python > Comment pouvons-nous différer l'évaluation des chaînes F au-delà du contexte immédiat du code ?

Comment pouvons-nous différer l'évaluation des chaînes F au-delà du contexte immédiat du code ?

Barbara Streisand
Libérer: 2024-11-03 01:56:03
original
1051 Les gens l'ont consulté

How Can We Defer the Evaluation of F-Strings Beyond the Immediate Code Context?

Surmonter le dilemme de l'évaluation dans les F-Strings

Lors de la composition de fichiers à l'aide de chaînes de modèles, la concision des f-strings est très attrayante. Cependant, des difficultés apparaissent lorsque les définitions de modèles résident en dehors du contexte immédiat du code. Comment pouvons-nous différer l'évaluation des f-strings, éliminant ainsi le besoin d'appeler format(**locals()) ?

Entrez fstr(), une fonction puissante qui résout ce dilemme. Voici comment cela fonctionne :

<code class="python">def fstr(template):
    return eval(f'f&quot;&quot;&quot;{template}&quot;&quot;&quot;')</code>
Copier après la connexion

Pour utiliser cette fonction, appelez simplement fstr() sur le modèle souhaité :

<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>
Copier après la connexion

Essentiellement, contrairement aux autres solutions proposées, fstr() permet des expressions plus complexes dans le modèle, y compris les appels de fonction et l'accès aux attributs :

<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>
Copier après la connexion

Avec cette solution, vous pouvez efficacement reporter l'évaluation des f-strings, en préservant leurs puissantes capacités de gestion succincte et dynamique des modèles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal