从模块访问全局变量

时间:2018-08-02 04:02:34

标签: python python-3.x

我在模块中存储了一些代码,该代码需要从运行它的任何环境中访问全局变量。这似乎(甚至可能是!)有点不合逻辑的结构,但是具有相同名称的全局变量是总是在我使用此代码的任何情况下创建的。不幸的是,我实际上无法使其工作。如果我在同一文件中全部创建代码,那就没问题了:

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关键字来查看是否有帮助,但这没有帮助。有人可以提供任何建议吗?

1 个答案:

答案 0 :(得分:2)

您的榜样对我来说很好。但是,您可以在模块中定义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