Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menangguhkan Penilaian F-String dalam Python untuk Templat Statik?

Bagaimana untuk Menangguhkan Penilaian F-String dalam Python untuk Templat Statik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 09:08:03460semak imbas

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

Mentafsir F-Strings atas Permintaan

Dalam Python, f-strings menawarkan sintaks yang mudah untuk interpolasi rentetan. Walau bagaimanapun, apabila bekerja dengan templat statik yang dibaca daripada sumber luaran atau ditakrifkan di tempat lain dalam kod, mungkin wajar untuk menangguhkan penilaian rentetan ini.

Menunda Penilaian Rentetan F

Untuk mengelakkan keperluan untuk panggilan .format(**locals()) apabila menggunakan templat statik, fungsi Python boleh digunakan. Fungsi fstr, yang ditakrifkan seperti berikut, membolehkan kita menilai rentetan sebagai rentetan f:

<code class="python">def fstr(template):
    return eval(f'f&quot;&quot;&quot;{template}&quot;&quot;&quot;')</code>

Contoh Penggunaan

Dengan fstr, kita boleh menggunakan templat statik yang ditakrifkan dalam pembolehubah atau baca daripada fail dan interpolasi nilai ke dalamnya. Pertimbangkan contoh berikut:

<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>

Output:

The current name is foo
The current name is bar

Perhatikan bahawa memandangkan templat dinilai pada masa jalan, ungkapan kompleks juga boleh digunakan dalam pendakap kerinting, seperti nama. upper() * 2 dalam contoh berikut:

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

for name in names:
    print(fstr(template_b))</code>

Output:

The current name is FOOFOO
The current name is BARBAR

Atas ialah kandungan terperinci Bagaimana untuk Menangguhkan Penilaian F-String dalam Python untuk Templat Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn