首页 > 解决方案 > 为什么使用这些 pygame 导入会给我一个错误?

问题描述

我是 python 新手,所以我为这个问题背后可能的愚蠢道歉。

我有两个正在使用的文件 -File1File2

File1X定义的变量中,这个文件改变了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

对于这个问题的模糊结构,我深表歉意,我愿意接受任何关于导入的替代建议。我只需要能够使用在第一个文件中也更改的变量。

标签: pythonpygame

解决方案


x您可以将变量从变量File1传递给函数,而不是直接导入。File2x

为此,您需要从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)

如果没有您的实际代码,很难解释或给出示例,但我希望这有助于使我的意思更加清楚。


推荐阅读