我有一個函數遍歷一個文本文件,通過使用正則表達式來提取某些信息來查找信息。但是,程序會覆蓋多個文件,因此會多次調用此函數。Python:在哪裏編譯RE?
目前,我有正則表達式編譯作爲函數的第一步。但是我開始想知道,從編程的角度來看,這是否是好的設計,因爲函數被調用了好幾次。
解釋器是否足夠聰明,看到它們不會在運行之間改變並緩存它們?或者,我考慮將它們編譯爲全局變量,以便它始終可用,只能編譯一次,但將正則表達式與將使用的地方分開,這會使其更難以閱讀。我看到的另一個選項是創建函數作爲閉包,並在創建時傳入正則表達式值,但似乎不必要的複雜。
總之,什麼是最有效的方法來編譯的RE(或任何其他值計算一次)仍然可讀和pythonic?
謝謝。
我相信這是一個過早優化的情況。只要做你覺得在你的情況下最易讀的東西。如果您遇到性能問題,請運行分析器並查看問題所在。 –
@AirirRachum在這種特殊情況下,你可能是對的。但這不是我第一次也不是最後一次有這樣的設計,所以它很高興早日實現它,至少在不損害可讀性的情況下。 – TimothyAWiseman