Maison > développement back-end > Tutoriel Python > Comment différer l'évaluation d'une chaîne F en Python pour les modèles statiques ?

Comment différer l'évaluation d'une chaîne F en Python pour les modèles statiques ?

Mary-Kate Olsen
Libérer: 2024-10-30 09:08:03
original
538 Les gens l'ont consulté

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

Interprétation des chaînes F à la demande

En Python, les chaînes F offrent une syntaxe pratique pour l'interpolation de chaînes. Cependant, lorsque vous travaillez avec des modèles statiques lus à partir de sources externes ou définis ailleurs dans le code, il peut être souhaitable de retarder l'évaluation de ces chaînes.

Différer l'évaluation des chaînes F

Pour éviter d'avoir à pour l'appel .format(**locals()) lors de l'utilisation de modèles statiques, une fonction Python peut être utilisée. La fonction fstr, définie comme suit, nous permet d'évaluer une chaîne comme une f-string :

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

Exemple d'utilisation

Avec fstr, nous pouvons utiliser un modèle statique défini dans une variable ou lire à partir d'un fichier et y interpoler des valeurs. Prenons l'exemple suivant :

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

Sortie :

The current name is foo
The current name is bar
Copier après la connexion

Notez que puisque le modèle est évalué au moment de l'exécution, des expressions complexes peuvent également être utilisées entre les accolades, telles que le nom. upper() * 2 dans l'exemple suivant :

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

for name in names:
    print(fstr(template_b))</code>
Copier après la connexion

Sortie :

The current name is FOOFOO
The current name is BARBAR
Copier après la connexion

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