如果我的topmost库是这样构造的:
topmost
/__init__.py
/submodule
/__init__.pytopmost.__init__.py 可以访问 topmost.submodule.__init__.py**?**中的全局变量吗?
对于topmost.submodule.__init__.py,应该有一些全局变量:
def characterize(input):
global abc
abc = load_abc_model()
return abc.func(input)我在topmost.__init__.py中尝试过这种方法,但是topmost.submodule.__init__.py中的全局变量仍然无法访问:
from __future__ import absolute_import
from topmost import submodule
__import__('submodule', globals())但是只有abc全局变量在最上面是不可访问的。
发布于 2017-05-11 08:11:20
第一次执行函数时,通过/在函数中声明/定义的全局变量(在全局范围内)将出现。
证明:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 'abc' in globals()
False
>>> def foo():
... global abc
... abc = 123
... print('foo')
...
>>> 'abc' in globals()
False
>>> foo()
foo
>>> 'abc' in globals()
True
>>> 使用当前设置:
topmost
/__init__.py
/submodule
/__init__.py以及:
def characterize(input):
global abc
abc = load_abc_model()
return abc.func(input)topmost.submodule.abc 只有在 topmost.submodule.characterize()被调用之后才能存活。
https://stackoverflow.com/questions/43907854
复制相似问题