"Class object has no attribute"



:)你好!

我是一名学生,对编码有些陌生,我已经搜索了相当长的时间来回答我的问题,但我还没有能够解决它。它应该是超级容易,但由于某种原因,我的代码不工作。我们应该编写一个"大炮游戏";使用我们课程文献中的图书馆。我需要为我的graphicgame类的窗口定义一个getter,这样我就可以检索它,当我需要绘制我的图形播放器,但getwwindow (self)函数不工作。当你得到这种错误信息时,最常见的问题似乎是混合制表符和空格,但我的编辑器应该自动将所有制表符替换为空格。我希望有个简单的解决办法。

注意:下面的代码在我的编辑器中没有这样缩进,当我将它粘贴到堆栈溢出时发生了一些事情。在我的原始代码中,所有属性的定义都是缩进的。

相关代码:

class GraphicGame: 
def __init__(self, game):
self.model = game
self.model.players[0] = GraphicPlayer(self, self.model.players[0])
self.model.players[1] = GraphicPlayer(self, self.model.players[1])
self.model.currentplayer = self.model.players[0]
self.window = GraphWin("Cannon game" , 640, 480, autoflush=False)
self.window.setCoords(-110, -10, 110, 155)
ground = Line(Point(-110,0), Point(110,0))
ground.draw(self.window)
def getWindow(self):
return self.window
class GraphicPlayer:
def __init__(self, ggame, player):
self.player = player
self.ggame = ggame
self.width = self.ggame.getCannonSize()
self.color = self.player.getColor()
self.pos = self.player.getX()
self.window = ggame.getWindow()
self.gplayer = Rectangle(Point(self.pos-(self.width/2), 0), Point(self.pos + (self.width/2), 0))
self.gplayer.draw(self.window)

当我尝试构建图形播放器时发生错误。错误信息:

File "c:UsersUserPython ProgrammeringProgrammeringteknikGrafiklab2gamegraphics.py", line 79, in __init__
self.window = ggame.getWindow()
File "c:UsersUserPython ProgrammeringProgrammeringteknikGrafiklab2gamegraphics.py", line 66, in getWindow
return self.window
AttributeError: 'GraphicGame' object has no attribute 'window

Solved: Graphicgame在图形游戏窗口创建之前调用graphicplayer。因此出现了错误。

相关内容

最新更新