在 Python 中,f 字串提供了一種方便的字串插值語法。但是,當使用從外部來源讀取或在程式碼中其他位置定義的靜態範本時,可能需要延遲這些字串的評估。
為了避免需要對於使用靜態模板時的 .format(**locals()) 調用,可以使用 Python 函數。 fstr 函數定義如下,允許我們將字串計算為f 字串:
<code class="python">def fstr(template): return eval(f'f"""{template}"""')</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
請注意,由於模板是在運行時計算的,因此也可以在大括號內使用複雜表達式,例如name 。 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中文網其他相關文章!