2017-06-27 2 views
0

Ich versuche die neue f-Strings, und ich frage mich, ob es möglich ist, eine normale Zeichenfolge in eine f-Zeichenfolge "kompilieren". So haben Sie Kontrolle über die Auswertungszeit der f-string, und in der Lage sein, f-Strings vor dem Verzehr zu definieren.Erstellen f-Strings aus normalen Strings

Beispiel Pseudocode:

a = 'normal string with some curly {inside}' 
inside = 'in it!' 
print(a.make_f_string()) 
>>> 'normal string with some curly in it!' 

Also im Grunde ist meine Notwendigkeit, den f-String vor den Variablen zu definieren, die es enthält. oder mache eine Zeichenfolge zu einer f-Zeichenfolge.

Ich habe versucht, mit der nesting capabilities of them (SO) aber ohne Glück zu spielen.

Ist es möglich? Bis jetzt ist der einzige Weg, den ich gefunden habe, mit eval(), und scheint weit von einer guten Möglichkeit, es zu tun.

eval(f"f'{a}'") 
+0

Ist 'a.format (** locals()) 'ausreichend? – wim

+0

ja es ist, so ist es a.map_format (localhosts()), ich spiele nur herum und studiere f-strings und schau was sie machen können, sie können benutzt werden .. – Hrabal

Antwort

0

Ist es möglich?

Nein, abgesehen von eval ing oder exec in ähnlicher Weise ing, können Sie dies nicht tun.

Da Sie versuchen, ein Format zu definieren, bevor die tatsächliche Formatierung benötigt wird, benötigen Sie .format, nicht f-Strings.

Verwandte Themen