How to access global variable from first python file into second when second file is imported in first file
本问题已经有最佳答案,请猛点这里访问。
我有两个python脚本。我试图将全局变量的值从1.py访问到2.py。
这是我的密码。
O.Py
1 2 3 4 5 6 7 8 9 | import two myvar = False def fun(): global myvar myvar = True two.use_me() |
两个
1 2 3 4 | import one print"from two:", one.myvar def use_me(): print"This is used in one.py" |
我得到这个错误:
1 2 3 4 5 6 7 8 9 10 | $ python two.py from two: Traceback (most recent call last): File"two.py", line 1, in <module> import one File"one.py", line 1, in <module> import two File"two.py", line 2, in <module> print"from two:", one.myvar AttributeError: 'module' object has no attribute 'myvar' |
不知道我在这里遗漏了什么。有人能帮忙吗?
您有一个循环输入。运行
回溯报告就是这么告诉你的:
- 运行
two.py 的声明import one 时 - 运行
one.py 的声明import two 时 - 在文件
two.py 中,我得到一个AttributeError 正在执行print"two.py", one.myvar 。
您的
循环导入通常是一个很强的信号,表明您的设计/体系结构中存在问题。尝试四处移动函数/类/变量以避免它们,最终组合两个模块。
有一些方法可以让它们工作,但它们很脆弱,应该避免。
如果您在
Yuo还可以考虑创建一个
你如何确切地打破你的循环导入取决于你所拥有的确切的代码,因此,仅以玩具为例,我们可以继续说几天"你可以只删除这个"或"你可以只移动那个"。如果您想要更精确的答案,我们需要看到非常精确的代码,它表示两个模块中涉及的定义。