2017-06-27 21 views
0

新しいf-stringを試しています。通常の文字列をf-stringに "コンパイル"することが可能かどうか疑問です。 したがって、f-stringの評価時間を制御し、それらを消費する前にf-stringを定義することができます。通常の文字列からf-stringsを作成する

例の擬似コード:

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

だから、基本的に私の必要性は、それが含まれている変数の前にF-文字列を定義することです。または文字列をf文字列にします。

私はnesting capabilities of them (SO)で試してみましたが、運はありませんでした。

可能ですか?これまで私が見つけた唯一の方法はeval()であり、それを行う良い方法からは遠く離れているようです。

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

'a.format(** locals())'で十分ですか? – wim

+0

はい、それはa.map_format(locals())です。私はちょうど遊んでいて、f-stringsを勉強して、彼らが何をすることができるかを見て、それらを使用することができます。 – Hrabal

答えて

0

それは可能ですか?

いいえ、同様の方法でevalまたはexecを除いて、これを行うことはできません。

実際の書式設定が必要になる前に書式を定義しようとしているため、ではなくf文字列が必要です。

関連する問題