如标题。
我有变量文件A,
global var = 0
程序文件B,
import A
for i in range(1000):
A.var += 1
time.sleep(1)
和程序文件C:
print(A.var)
那么,怎样才能让B或C得到同一个变量A呢?
例如,B运行了60秒,结果C为60。
变量存在于命名空间中。当你
import A
您正在将 A.py 的命名空间分配给模块命名空间中的变量
A
。执行相同导入的任何其他模块都会在其模块的命名空间中获取对 A 命名空间的引用。
类似的操作
A.var += 1
在 A 的命名空间中查找“var”,执行操作并分配回同一命名空间。这就是为什么以相同方式导入的所有模块都会看到相同的值。
只要 B 和 C 在同一个程序中导入,它们就会看到相同的 A 命名空间,从而在 A 中看到相同的变量。
如果我理解正确的话,你可以这样做:
A.py:
global var
var = 10
B.py:
from A import var
import time
while True:
var = var -1
print(var)
time.sleep(5)
var = var + 1
print(var)
C.py
from B import var
print(var)
每次 B 更改 var 值时,C 文件都会更改其值