Python-如何制作跨模块变量?

发布于 2021-02-02 23:14:06

__debug__变量很方便,部分原因是它会影响每个模块。如果我想创建另一个工作方式相同的变量,我该怎么做?

从某种意义上说,如果我在一个模块中更改foo,而在其他模块中对其进行更新,则该变量(让我们为原始变量,并将其称为“ foo”)不必是真正全局的。如果我可以在导入其他模块之前设置foo,然后它们会看到相同的值,那很好。

关注者
0
被浏览
86
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    我不以任何方式,形状或形式认可该解决方案。但是,如果你将变量添加到__builtin__模块,则__builtin__默认情况下,就像所有其他模块(包括所有模块)中的全局变量一样,将可以对其进行访问。

    a.py包含

    print foo
    

    b.py包含

    import __builtin__
    __builtin__.foo = 1
    import a
    

    结果是打印了“ 1”。

    编辑:该__builtin__模块可用作本地符号__builtins__-这就是其中两个答案之间存在差异的原因。另请注意,__builtin__它已builtins在python3中重命名为。



  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果你需要全局跨模块变量,则只需简单的全局模块级变量就足够了。

    a.py:

    var = 1
    

    b.py:

    import a
    print a.var
    import c
    print a.var
    

    c.py:

    import a
    a.var = 2
    

    测试:

    $ python b.py
    # -> 1 2
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看