【发布时间】:2019-10-11 19:12:11
【问题描述】:
我正在尝试创建一个需要来自主类的变量的模块,因此我将所述变量导入到模块中,但是当我尝试通过将其导入主类来测试我的新模块时,它说它可以'不要导入它。
这似乎是因为我在新模块中导入了导致问题的主类,因为每当我删除导入时,它都可以工作,但它不能再访问主类中运行所需的变量。
主类:
from Mod import Mod
variable1=5
variable2=3
mod=Mod()
mod.task()
新模块:
from Main import variable1, variable2
class Mod:
def task(self):
print(variable1+variable2)
当我运行主类时,我得到了这个:
Traceback (most recent call last):
File "D:\.here\Computer Science\Computer Science Stuff\Python Projects\Main.py", line 1, in <module>
from Mod import Mod
File "D:\.here\Computer Science\Computer Science Stuff\Python Projects\Mod.py", line 1, in <module>
from Main import variable1, variable2
File "D:\.here\Computer Science\Computer Science Stuff\Python Projects\Main.py", line 1, in <module>
from Mod import Mod
ImportError: cannot import name 'Mod' from 'Mod' (D:\.here\Computer Science\Computer Science Stuff\Python Projects\Mod.py)
当我运行新模块时,我得到了这个:
Traceback (most recent call last):
File "D:\.here\Computer Science\Computer Science Stuff\Python Projects\Mod.py", line 1, in <module>
from Main import variable1, variable2
File "D:\.here\Computer Science\Computer Science Stuff\Python Projects\Main.py", line 1, in <module>
from Mod import Mod
File "D:\.here\Computer Science\Computer Science Stuff\Python Projects\Mod.py", line 1, in <module>
from Main import variable1, variable2
ImportError: cannot import name 'variable1' from 'Main' (D:\.here\Computer Science\Computer Science Stuff\Python Projects\Main.py)
我不知道为什么会发生这种情况。这与我在 Java 中所做的相矛盾。
如果不通过导入,我如何能够引用存储在主类中的全局变量?
【问题讨论】:
-
问题的根源可能是递归导入。你不应该让两个文件相互导入
-
@JammyDodger 你的意思是循环进口吗?
标签: python python-3.x import python-import