类变量在python中重置

时间:2017-01-09 02:13:53

标签: python class while-loop pygame reset

现在我遇到一个问题,一个班级'值被重置我不知道在哪里。有人可以帮忙吗?这是代码

while True:
   #some code#
   Hub().paint(gameDisplay)

Hub / paint功能如下所示

def paint(self, screen):
    if self.gimseen == 0 and self.pressed == 0:
        screen.blit(image1, (self.x, self.y))
        self.pressed = (pygame.mouse.get_pressed()[0])
        if self.pressed == 1:
            self.gimseen += 1

在某些代码中,我调用了一个函数,我也用它来获取self.pressed的值除了在while循环上面添加一行表示hub = hub()之外还有其他任何方法吗?

1 个答案:

答案 0 :(得分:2)

您的变量重置的原因是因为每次while循环循环时都会创建Hub()的全新实例。这意味着每次调用paint()时,您使用前一个Hub()实例的状态都将丢失。相反,您需要在while循环之外创建一个Hub()类的实例,然后在paint()的一个实例上调用循环内的方法Hub()

# only create one instance of hub.
hub = Hub()
# create you loop.
while True:
    # call the method paint on the
    # the one instance of Hub(); hub.
    hub.paint()