两个或多个文件获得相同的变量

问题描述 投票:0回答:2

如标题。

我有变量文件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。

python global-variables
2个回答
2
投票

变量存在于命名空间中。当你

import A

您正在将 A.py 的命名空间分配给模块命名空间中的变量

A
。执行相同导入的任何其他模块都会在其模块的命名空间中获取对 A 命名空间的引用。

类似的操作

A.var += 1

在 A 的命名空间中查找“var”,执行操作并分配回同一命名空间。这就是为什么以相同方式导入的所有模块都会看到相同的值。

只要 B 和 C 在同一个程序中导入,它们就会看到相同的 A 命名空间,从而在 A 中看到相同的变量。


-2
投票

如果我理解正确的话,你可以这样做:

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 文件都会更改其值

© www.soinside.com 2019 - 2024. All rights reserved.