NameError при использовании «self» в классе? - PullRequest
0 голосов
/ 17 марта 2012

У меня есть следующий код Python (3.2):

from pygame import *

class Application:

    def __init__(self):
        self.running = True
        self.display_surface = None
        self.size = self.width, self.height = 640, 480

        self.old_ticks = pygame.time.get_ticks
        self.new_ticks = None

        pygame.init()
            self.display_surface = pygame.display.set_mode(self.size, pygame.HWSURFACE | pygame.DOUBLEBUF)

    def on_event(self, event):
        if event.type == pygame.QUIT:
            self.running = False

    def on_loop(self):
        pass

    def on_render(self):
        pass

    def on_cleanup(self):
        pygame.quit()

    def regulate_time(self):
        self.new_ticks = pygame.time.get_ticks

        while (self.new_ticks < self.old_ticks + 1000):
            pass

        self.old_ticks = self.new_ticks

    def load_images(self):
        pass

    while(self.running == True):
        for event in pygame.event.get():
            self.on_event(event)

        self.regulate_time
        self.on_loop()
        self.on_render()

    self.on_cleanup()

    test = Application

У меня проблема со следующей строкой:

while(self.running == True):

, который выдает мне ошибку: NameError: Name "self" is not defined.

Я в значительной степени новичок в Python и надеялся использовать это время, чтобы начать изучать Python и Pygame, которые я мог бы затем использовать для своего проекта в колледже (две птицы с одним камнем), и я не могу понять, почему эта ошибка меня бросают.

1 Ответ

6 голосов
/ 17 марта 2012

Ну, while(self.running == True) - это , а не в любом методе (def), так что нет такой переменной , которая называется self в области видимости (то, что * 1008) * говорит) ...

... возможно, пропущен отступ? Хотя предыдущий pass делает его похожим на то, чего не хватает: возможно def run(self):?

Помните, self - это просто обычное (и правильное) имя, данное параметру first для метода, которым неявно передается «текущий экземпляр».

Удачного кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...