Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Kita Boleh Menangguhkan Penilaian F-Strings Melampaui Konteks Kod Segera?
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"""{template}"""')</code>
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>
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>
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!