gpt4 book ai didi

Python 跨模块变量和导入

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:15 25 4
gpt4 key购买 nike

我看到还有其他与跨模块变量相关的问题,但它们并没有真正完全回答我的问题。

我有一个应用程序分为 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

但是我得到“未定义名称错误变量”

最佳答案

如果模块中的代码定义为类,并且主程序创建这些类的实例,则主程序可以将一个模块类的实例传递给另一个,并且对该实例的更改将反射(reflect)到所有地方。不需要将 a 或 b 导入彼此,因为它们只是相互引用。

关于Python 跨模块变量和导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850266/

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