我有一些代码存储在一个模块中,该模块需要从运行的任何环境中访问全局变量。这可能看起来(甚至可能是!)有点不合逻辑的结构,但是具有相同名称的全局变量是总是在我使用此代码的任何情况下创建。不幸的是,我实际上无法让它发挥作用。如果我在同一个文件中创建所有代码,那就没问题了:
DATE_TODAY = '2018-08-02'
class test_class:
def __init__(self):
print(DATE_TODAY)
t1 = test_class()
给我 2018-08-02 作为输出。但是,如果我将 test_class 移动到模块然后导入它:
import Modules.test_mod as mod
DATE_TODAY = '2018-08-02'
t1 = mod.test_class()
我明白了:
NameError:名称“DATE_TODAY”未定义
我尝试过使用 global 关键字来看看这是否有帮助,但据我所知,它没有帮助。有人可以提供任何建议吗?
最佳答案
你的例子对我来说运行良好。但是,您可以在模块中定义 DATE_TODAY,然后将其导入到其他模块,如下所示:
模块m1.py:
import m2 as mod
from m2 import DATE_TODAY
t1 = mod.test_class()
模块m2.py:
DATE_TODAY = '2018-08-02'
class test_class:
def __init__(self):
print(DATE_TODAY)
t1 = test_class()
输出:
2018-08-02
2018-08-02
关于python - 从模块访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51645300/