我有两个模块,a.py和b.py.我希望a.py中的全局变量在b.py中可用,如下所示:
a.py:
#!/usr/bin/env python
var = "this is global"
import b
b.foo()
b.py:
#!/usr/bin/env python
var = "this is global"
def foo():
print var
目前,我在每个模块中重新声明了全局变量。必须有一个更简单的方法。
答案 0 :(得分:2)
通过使b.py需要来自a.py的全局变量,你创建了相互依赖的类,这是糟糕的设计。
如果您有需要共享的静态变量,请考虑创建 a.py 和 b c.py .py 可以导入和引用。
如果您有需要共享的动态变量,请考虑创建一个设置类,该类可以在模块之间实例化并传递。
答案 1 :(得分:2)
创建一个具有共享全局变量的设置模块,如果这是您想要的。这样,您只需导入和引用每个全局一次,并且您将它们隔离在设置模块的命名空间内。这是件好事。
#settings.py
var = 'this is global'
# a.py
import settings
import b
b.foo()
# b.py
import settings
def foo():
print settings.var
答案 2 :(得分:2)
在c.py中定义全局变量并将它们导入a.py和b.py