Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Kita Boleh Menangguhkan Penilaian F-Strings Melampaui Konteks Kod Segera?

Bagaimana Kita Boleh Menangguhkan Penilaian F-Strings Melampaui Konteks Kod Segera?

Barbara Streisand
Lepaskan: 2024-11-03 01:56:03
asal
1126 orang telah melayarinya

How Can We Defer the Evaluation of F-Strings Beyond the Immediate Code Context?

Mengatasi Masalah Penilaian dalam F-Strings

Apabila mengarang fail menggunakan rentetan templat, kepekatan f-strings sangat menarik. Walau bagaimanapun, kesukaran timbul apabila definisi templat berada di luar konteks kod segera. Bagaimanakah kita boleh menangguhkan penilaian f-strings, menghapuskan keperluan untuk panggilan format(**locals())?

Masukkan fstr(), fungsi berkuasa yang menyelesaikan dilema ini. Begini caranya:

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

Untuk menggunakan fungsi ini, cuma panggil fstr() pada templat yang diingini:

<code class="python">template_a = "The current name is {name}"
names = ["foo", "bar"]
for name in names:
    print(fstr(template_a))
# Output:
# The current name is foo
# The current name is bar</code>
Salin selepas log masuk

Yang penting, tidak seperti penyelesaian lain yang dicadangkan, fstr() membenarkan ungkapan yang lebih kompleks dalam templat, termasuk panggilan fungsi dan akses atribut:

<code class="python">template_b = "The current name is {name.upper() * 2}"
for name in names:
    print(fstr(template_b))
# Output:
# The current name is FOOFOO
# The current name is BARBAR</code>
Salin selepas log masuk

Dengan penyelesaian ini, anda boleh menangguhkan penilaian rentetan-f dengan berkesan, mengekalkan keupayaan berkuasanya untuk pengendalian templat yang ringkas dan dinamik.

Atas ialah kandungan terperinci Bagaimana Kita Boleh Menangguhkan Penilaian F-Strings Melampaui Konteks Kod Segera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan