我看到还有其他与跨模块变量相关的问题,但它们并没有真正完全回答我的问题。
我有一个应用程序,我将其拆分为 3 个模块 + 1 个主应用程序,主要是为了便于阅读和维护。
这些模块中的 2 个具有带有变量的线程,这些变量需要从其他模块和其他模块线程中修改。
虽然我可以从主代码修改模块的变量,但我似乎无法从另一个模块修改一个模块的变量,除非我将每个模块都导入到其他每个模块中。
下面的示例将 a&b 导入到 main 中,并且模块 a 需要访问模块 b 中的变量:
main
module a
var a
module b
var a
main
a.a = 1
b.a = 2
module a
b.a = 3
module b
a.a = 0
不将模块a导入模块b并将模块b导入模块a,这可以通过主程序全局实现吗?
如果我必须将 a 和 b 导入 main,然后将 a 导入 b 和 b 导入 a,那么在内存和资源使用/速度等方面有什么影响?
我尝试了@abarnert 的建议:
#moda
vara = 10
#modb
print(str(vara))
#main
import moda
from moda import vara
import modb
但是我得到“名称错误变量未定义”