想知道是否有人對Python的全局使用和引用模塊本身有任何想法。雖然過去我使用的全局需要的時候,我發現它有點更清晰的做第二個方法(和最近傾向於支持這種語法):Python使用全局指定模塊與指定模塊
import sys
mod = sys.modules[__name__]
counter = 0
def incrementGlobal():
global counter
counter += 1
def incrementMod():
mod.counter += 1
顯然他們都做工精細,但如果有人有什麼強烈的意見(什麼是更pythonic,表演等),我很樂意聽到他們。
Btw我結束了使用其中的任何一種情況下,模塊自然地封裝所有的方法和屬性將是一個單一的類,而不是引用incrementmodule.IncrementClass.counter我可以只使用incrementmodule.counter。
第二個如何更清晰? – delnan 2011-12-30 13:29:16
我想這不是更清楚,但我更喜歡它,因爲它很明顯是一個模塊級別的變量正在修改,而不是本地的(讓你不必檢查變量是否在全局聲明頂部) – gnr 2011-12-30 13:40:33
如果'global'和這個任務很遠,那麼你的清晰度問題會比這個更糟糕;) – delnan 2011-12-30 13:43:56