“类对象没有属性”

2024-05-12 14:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

你好

我是一名学生,对编码有点陌生,我花了很长时间寻找我的问题的答案,但我一直没能解决它。这应该非常简单,但由于某些原因,我的代码无法工作。我们应该使用课程文献中的库编写一个“加农炮游戏”。我需要为我的graphicgame类的窗口定义一个getter,这样当我需要绘制图形播放器但getWindow(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:\Users\User\Python Programmering\Programmeringteknik\Grafik\lab2\gamegraphics.py", line 79, in __init__
self.window = ggame.getWindow()
  File "c:\Users\User\Python Programmering\Programmeringteknik\Grafik\lab2\gamegraphics.py", line 66, in getWindow
    return self.window
AttributeError: 'GraphicGame' object has no attribute 'window

"


Tags: 代码selfgamemodelinitdef错误window