python - 为什么使用这些 pygame 导入会给我一个错误?
问题描述
我是 python 新手,所以我为这个问题背后可能的愚蠢道歉。
我有两个正在使用的文件 -File1
和File2
在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)
如果没有您的实际代码,很难解释或给出示例,但我希望这有助于使我的意思更加清楚。
推荐阅读
- python - 有没有办法限制句子中的单词数量?
- laravel - 如何使用 Vue 和 Laravel 访问另一个 docker 卷文件?
- python - 特定单词的 Python 正则表达式
- android - 在 CameraX analyze() 中执行异步代码的最佳方法是什么?
- r - 如何找到数据帧每一行的最小值索引?
- r - 在 Databricks 中调用 R 工作簿
- jquery - 当 JQuery 的其余部分工作时,为什么所有 Ajax 方法都失败了
- python - 说我还没有宣布,即使我清楚地有
- sql-server - 如何让kafka复制目标表中的源表结构
- r - 将列值作为 R 中的列名