Python:无法访问另一个类的类变量

时间:2014-10-12 13:40:07

标签: python class variables attributes

我遇到了一个访问让我感到困惑的类变量的问题。我想从类gameDisplay访问类Game的变量Unit,但我得到class Game has no attribute 'gameDisplay',我不明白,因为Game拥有它。

class Game:
def __init__(self,w,x,y):
    #{
    # display paramteters
    self.fps = 30
    self.fpsTime = pygame.time.Clock()
    self.displaySize = (0,0)
    self.gameDisplay = pygame.display.set_mode(self.displaySize)

其余的课程代码游戏:

class Unit:
def __init__(self,name,imgAlive,posX,posY,movSpeed):
    self.name = name
    self.imgAlive = imgAlive
    self.posX = posX
    self.posY = posY
    self.movSpeed = movSpeed
    self.gameDisplay = Game.gameDisplay

其余的类代码

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

就像@jonrsharpe指出的那样,gameDisplay是实例的一个属性,因为" self。"前缀,以你想象的方式使用Game类,你需要这样的东西:

class Game:
    gameDisplay = pygame.display.set_mode(self.displaySize)
    def __init__(self,w,x,y):
        #{
        # display paramteters
        self.fps = 30
        self.fpsTime = pygame.time.Clock()
        self.displaySize = (0,0)

这样,类和所有实例都将具有该属性