Maison  >  Article  >  développement back-end  >  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
Mary-Kate Olsenoriginal
2024-10-30 09:08:03458parcourir

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>

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>

Sortie :

The current name is foo
The current name is bar

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>

Sortie :

The current name is FOOFOO
The current name is BARBAR

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!

Déclaration:
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