Un f-chaîne est syntaxe, pas un type d'objet . Vous ne pouvez pas convertir une chaîne arbitraire à cette syntaxe, la syntaxe crée un objet chaîne, et non l'inverse.
Je suppose que vous voulez utiliser user_input
comme modèle, donc il suffit d'utiliser la str.format()
method sur l'objet user_input
:
variable = 42
user_input = "The answer is {variable}"
formatted = user_input.format(variable=variable)
Si vous voulez fournir un service de templating configurable, créer un dictionnaire d'espace de noms avec tous champs qui peuvent être interpolées, et utiliser str.format()
avec la syntaxe d'appel **kwargs
à appliquer l'espace de noms:
namespace = {'foo': 42, 'bar': 'spam, spam, spam, ham and eggs'}
formatted = user_input.format(**namespace)
l'utilisateur peut alors utiliser l'une des clés i n l'espace de noms dans les champs {...}
(ou aucun, les champs inutilisés sont ignorés).
Une chaîne f est ** syntaxe **, pas un type d'objet. Vous ne pouvez pas convertir un modèle en une syntaxe de ce type. –