我正在寫一個實用程序模塊,以便於處理數據文本文件。我已經聲明瞭一些模塊級別的常量來爲我的方法參數提供默認值,因爲現在我只使用這些值,但我希望我的代碼很容易適應。什麼是用計算值聲明模塊級常量的pythonic /更快的方法?
但是一些常數不容易硬編碼。例如re
的pattern
對象我只能用re.compile
得到。所以我寫了
import re
_my_fine_pattern_string = r"some obnoxious regex"
MY_FINE_PATTERN = re.compile(_my_fine_pattern_string)
def spam(eggs):
...
它昨天在我直接執行的腳本內工作。但現在我想知道。此代碼是否會在import
上執行?它會減緩執行嗎?我會因此而被燒嗎?有沒有更好/更快的方法來做到這一點?
哦好吧,我認爲雙下劃線是「不出口」的成語。編譯的模式不應該有一個。我編輯問題。謝謝。 – Evpok 2011-05-19 13:47:12
@Evpok的旁註 - 通過在[PEP8](http://www.python.org/dev/peps/pep-0008/)中搜索「single_leading_underscore」,可以找到python下劃線約定的完整列表。模塊中沒有使用「__attr」的主要原因是「__attr」與「_attr」的不同行爲僅僅是類需要的,所以模塊中較短的一個是首選。否則,這將是完美的感覺:) – 2011-05-19 19:48:04
哦,沒有看到我們讀過它。雖然我不喜歡所有這些建議,但這個建議確實很明顯。謝謝。 – Evpok 2011-05-19 20:01:26