私はPEP 498に取り組んでいます。概念がよくわからないかもしれませんが、通常の Python 文字列をフォーマットされた文字列リテラルに変換し、実行時に評価するにはどうすればよいでしょうか?
次の文字列があるとします。
some_string = 'Name: {name}'
フォーマットされた文字列リテラルの場合、次のように動作します。
name = 'Demo'
some_string_literal = f'Name: {name}'
some_string_literal == 'Name: Demo' # returns True
これがまったく意味があるかどうかという問題を無視して、たとえばsome_string
、実行時にファイルからコンテンツを読み取り、それを変換some_string_literal
して評価するにはどうすればよいでしょうか? 基礎となる CPython 実装についての私の理解では、文字列リテラルはコンパイル時に解釈されます (バイトコードへの変換)。
...を使用するだけの、より「明示的な」オプションを認識しています。
some_string = 'Name: {name}'
some_string.format(name = 'Demo') == 'Name: Demo' # returns True
...しかし、これは私が探しているものではありません。
編集:「明示的な」オプションが私が探しているものであることがコメントに記載されていました。私がここで求めていることは、多くの点で間違いなく安全ではないことに同意します。それにもかかわらず、これを行う方法があるかどうかに興味があります。