想知道是否有人对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