gpt4 book ai didi

python - 如何在文件之间共享静态类变量?

转载 作者:行者123 更新时间:2023-11-28 20:55:39 25 4
gpt4 key购买 nike

我试图通过静态类在两个模块之间共享数据。本来应该很简单,但事实证明我遇到了某种问题。这是代码。

testa.py

class Tc:
a = 0


if __name__ == "__main__":
import testb
print(Tc.a)

testb.py

import testa

print(testa.Tc.a)
testa.Tc.a = 1

print(testa.Tc.a)

运行命令

python testa.py

预期的输出是

0
1
1

但是我得到了

0
1
0

这是怎么回事?

最佳答案

  • testa 被执行,它定义了 Tc 类并导入了 testb
  • testb 导入 testa
  • 因为 testa 从未被导入,它被执行并创建了一个新的 Tc
  • testb 继续打印 0 并为导入的 testa
  • 递增 testa.Tc
  • 正在运行的 testa 继续打印其 Tc.a 计数器的值,该计数器仍为零。

当您运行一个文件时,它的模块名称是 __main__(您甚至在 testa 中的条件检查它!)而在导入期间,名称始终是模块。因此重复。如果你想避免这种情况,你应该真正使用 3 个单独的文件,一个运行并导入 testatestb 导入 testa

关于python - 如何在文件之间共享静态类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56161347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com