问题描述
我是 Python 新手,所以我为这个问题背后可能的愚蠢而道歉。
在 File1
中,我定义了变量 X
,此文件在我的整个游戏中更改了 X
的值,并从 File2
导入特定对象
在 File2
中,我有一行 from File1 import X
,但在该文件中根本没有使用变量。
点击运行会出现一个错误,指出它无法从 File2 导入函数:
ImportError: cannot import name 'draw_panel' from partially initialized module 'File2' (most likely due to a circular import)
如果不是像我之前那样从 File1
导入特定对象,而是简单地输入 from File2 import *
,那么我的游戏将运行一小段时间,直到产生以下错误:
NameError: name 'draw_panel' is not defined
我为这个问题的模糊结构道歉,我愿意接受任何关于导入的替代建议。我只需要能够使用也在第一个文件中更改的变量。
解决方法
您可以将变量从 x
变量 File1
传递给函数,而不是直接从 File2
导入 x
。
要实现这一点,您需要在 File2
中执行 File1
中的代码,这可以通过在 File2
中设置一个包含所有函数和需要的变量。
举一个非常基本的例子:
class TestClass:
def __init__(self):
self.test_variable = 2
def multiply_test_variable(self,x):
self.test_variable *= x
然后,在 File1
中导入这个类并从那里运行代码:
from File2 import TestClass
x = 3
test_object = TestClass()
print(test_object.test_variable)
test_object.multiply_test_variable(x)
print(test_object.test_variable)
如果没有您的实际代码,很难解释或给出示例,但我希望这有助于使我的意思更清楚。