所以我正在阅读Alex Martelli对其他问题的回答...
"我可能想要初始化的一个示例是在包装上,我想一劳永逸地阅读一堆数据(来自文件,db或web)将阅读放入包装的 init .py中的私人功能中,而不是具有单独的"初始化模块",然后从包装中的每个真实模块...
不幸的是,当我尝试一下时:
foo/__ init __。py
import tables as tb
global foo
foo = tb.openFile('foo.h5', etc._)
import bar
foo/bar/__ init __。py
import tables as tb
global bar
bar = foo.createGroup('/', bar)
import MyFunction`
foo/bar/myfunction.py
def MyFunction(*of foo and bar*):
'...'
>>> import foo
>>> OUTPUT= foo.bar.MyFunction.MyFunction(INPUT)
>>> bar = foo.createGroup('/', bar)
NameError: name 'foo' is not defined
一个人如何定义全局变量而不将它们放入函数中(如下所示)?
全局变量不是全局变量,因为每位python代码都看到相同的全球群体。全球性实际上只是"模块范围";模块中定义的所有变量和函数已经是全局,并且尽可能地全局。
如果您想查看另一个模块的全球一个模块中定义的变量,则唯一的方法是将第一个模块的名称导入第二个模块... IE:
# myModule.py
foo = "bar"
# yourModule.py
from myModule import foo