ホームページ > バックエンド開発 > Python チュートリアル > Python で静的テンプレートの F 文字列評価を延期するにはどうすればよいですか?

Python で静的テンプレートの F 文字列評価を延期するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-30 09:08:03
オリジナル
538 人が閲覧しました

How to Defer F-String Evaluation in Python for Static Templates?

オンデマンドでの F-String の解釈

Python では、F-string は文字列補間のための便利な構文を提供します。ただし、外部ソースから読み取られた静的テンプレート、またはコード内の他の場所で定義された静的テンプレートを操作する場合、これらの文字列の評価を遅らせることが望ましい場合があります。

F-String 評価の延期

必要性を回避するには静的テンプレートを使用する場合の .format(**locals()) 呼び出しでは、Python 関数を利用できます。次のように定義された fstr 関数を使用すると、文字列を f 文字列として評価できます。

<code class="python">def fstr(template):
    return eval(f'f&quot;&quot;&quot;{template}&quot;&quot;&quot;')</code>
ログイン後にコピー

使用例

fstr を使用すると、変数で定義された静的テンプレートを使用できます。または、ファイルから読み取り、値をそのファイルに補間します。次の例を考えてみましょう。

<code class="python">template_a = "The current name is {name}"
names = ["foo", "bar"]

for name in names:
    print(fstr(template_a))  # Evaluates the template with the current 'name'</code>
ログイン後にコピー

出力:

The current name is foo
The current name is bar
ログイン後にコピー

テンプレートは実行時に評価されるため、名前などの複雑な式も中かっこ内で使用できることに注意してください。次の例では、upper() * 2:

<code class="python">template_b = "The current name is {name.upper() * 2}"

for name in names:
    print(fstr(template_b))</code>
ログイン後にコピー

出力:

The current name is FOOFOO
The current name is BARBAR
ログイン後にコピー

以上がPython で静的テンプレートの F 文字列評価を延期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート