gnr*_*gnr 5 python variables module global python-3.x
想知道是否有人对使用Python的全局与引用模块本身有任何想法.虽然过去我在需要时使用全局,但我发现第二种方法更加清晰(最近倾向于支持这种语法):
import sys
mod = sys.modules[__name__]
counter = 0
def incrementGlobal():
global counter
counter += 1
def incrementMod():
mod.counter += 1
Run Code Online (Sandbox Code Playgroud)
显然他们两个都很好,但如果有人有任何强烈的意见(什么是pythonic,表演等),我很乐意听到他们.
顺便说一句,在模块自然地封装了单个类的所有方法和属性,而不是引用incrementmodule.IncrementClass.counter的情况下,我最终会使用其中任何一个,我只能使用incrementmodule.counter.
global每次都去.该global关键字是在模块级修改的东西一个明显的和容易识别的图案.给一个模块一个引用它自己sys.modules似乎是一个不必要的复杂的绕过它的方式,并且可能会混淆下一个看它的程序员.