如果我有一个模块gobalcfgs包含
class Cfgs:
...
cfg = Cfgs()
有没有一种方法可以在一个项目中的多个模块之间共享这一点。 我有一个导入实用程序模块的主模块。所以,导入方向是
main <-- utility_1.py
main <-- utility_2.py
但是,一些全局变量和类在main中定义,并在实用程序模块中使用。目前我将它们作为函数调用中的变量,但是最好是有一个可以从所有模块访问的全局结构,而不是通过函数链发送信息
所以,与其总的来说是这样
cfg.sethost(host)
data = utility.getData(cfg)
实用的
def getData(cfg):
getDataFromX(cfg):
def getDataFromX(cfg):
con = openConnection(cfg):
def openConnection(cfg):
con = mycon(cfg.host)
具有某种全局性,然后主要具有
from globalcfgs import cfg
cfg.setHost(host)
data = utility.getData()
实用的
from globalcfgs import cfg
def openConnection():
con = mycon(cfg.host)
这不完全是一个真实的例子,我已经,但应该说明,我需要船舶信息在一个长链的功能。 有可能避免这种情况吗
首先,不要调用类
globals
,因为它会隐藏内置的globals()
函数。在任何情况下,Python的风格都是类使用CamelCase(大写),函数使用snake_case
除此之外,你所拥有的一切都很好。您可以在任何使用它的模块中导入
cfg
;唯一的问题是import语句的方式不对,应该是from globalstuff import cfg
相关问题 更多 >
编程相关推荐