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"""{template}"""')</code>
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>
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>
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!