python - 从模块访问全局变量

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

最佳答案

你的例子对我来说运行良好。但是,您可以在模块中定义 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/

相关文章:

python - 本地设置的 Cython 编译器指令会影响一个或所有功能吗?

python - python sqlite3 是否在交互模式下释放仅内存数据库?

python - 如何检查特定整数是否在列表中

python/beautifulsoup 查找所有具有特定 anchor 文本的 <a href>

python OrderedDict 获取关键索引的

python - Flask APP - ValueError : signal only works in main thread

python - Pygame.font.Font.render 有 TypeError

python - 异步/等待做什么?

python - 如何查找 python3 模块的位置并调试 ImportError

python - 如果插入时间在时间​​范围内则插入表