【问题标题】:Using variable in same class being set by name space in another class python在同一类中使用变量由另一个类python中的名称空间设置
【发布时间】:2020-07-23 01:34:27
【问题描述】:

我有 2 个 python 文件如下:

A.py

var1 = 1
var2 = var1 + 2

B.py

import A

print(A.var1)
print(A.var2)

A.var1 = 3
print(A.var1)
print(A.var2)

输出:

1 
3
3
3 --> Why this ?

为什么第二次打印没有反映变化?可以做些什么来解决这个问题? 我的理解是 using namespace 反映了变化。

【问题讨论】:

  • 导入模块后,当您更改对该模块的本地引用时,不会再次对其进行评估

标签: python variables namespaces


【解决方案1】:

导入模块 A 时,var1 和 var2 设置为 (1,3)。导入只会运行一次,var2 将保持 3,除非您将其设置为其他值。

【讨论】:

    【解决方案2】:

    A.py

    var1 = 1
    def var2():
        return var1 + 2
    

    B.py

    import A
    A.var1 = 2
    print(A.var2())
    

    【讨论】:

    • 欢迎来到 Stack Overflow。请拨打tour,并阅读How do I write a good answer?。特别是,请不要只添加代码;还要解释一下(它是 OP 代码的修复吗?为什么/它是如何工作的?);另请注意,OP 要求解释“为什么第二张印刷品没有反映这些变化?” – 仅说明代码并不能回答这个问题。
    猜你喜欢
    • 2017-02-14
    • 2023-02-21
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2014-10-06
    • 2021-01-01
    • 2011-07-23
    相关资源
    最近更新 更多