想知道是否有人对使用Python的全局vs.引用模块本身有什么想法。虽然过去我在需要时使用global,但我发现第二种方法更清晰(最近倾向于使用这种语法):
import sys
mod = sys.modules[__name__]
counter = 0
def incrementGlobal():
global counter
counter += 1
def incrementMod():
mod.counter += 1
显然他们两个都很好,但如果有人有什么强烈的意见(什么更像Python,表演等等),我很乐意听听。在
顺便说一句,当模块自然地封装一个类的所有方法和属性,而不是引用时,我会使用这两种方法中的任何一种incrementmodule.IncrementClass.counter我可以用递增模块计数器. 在
性能:使用
global
样式将比使用global
更快,因为它只需要一个名称查找而不是两个(只在数千个紧密循环中起作用)。样式:
mod.xxx
样式反映了从另一个导入的模块访问全局变量的方式:`
global
方法更为常见,但是您的mod.xxx
方法也很容易理解并且非常易读。在每次使用
global
。global
关键字是一种显而易见且易于识别的模式,用于在模块级别修改某些内容。从sys.modules
给一个模块一个对自身的引用似乎是一种不必要的复杂方法,而且很可能会让下一个查看它的程序员感到困惑。在相关问题 更多 >
编程相关推荐