如果模块对象仅通过"从模块导入*"进行导入,是否可以访问模块对象?

时间:2015-08-04 03:01:03

标签: python python-import

我有定义全局变量的文件,我想在文件之外使用,例如" func.py"含有:

def init():
  global a
  a = 5

如果我通过&x 34;从x import *"导入,那么访问模块的全局变量就不起作用了:

from func import *
init()
a
func.a

,因为afunc都未定义。 " FUNC"但是,它列在sys.modules.keys()中。

我知道"来自x import *"这不是最佳实践,但如何在使用时访问模块的变量或模块对象?

1 个答案:

答案 0 :(得分:0)

我没有找到办法做到这一点,除了导入模块"正确"同样。

import func
from func import *
init()
func.a

This question密切相关。 This one表示由于模块是使用任一命令完全导入的,因此也没有真正的性能差异。 <{3}}也可以为大型项目使用带有全局变量的单独文件/容器。

显然,不要使用&#34;来自x import *&#34;如果您无法帮助,请在实时故障排除之外。