我有以下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和pygame,然后我可以将它用于我的大学项目(一石二鸟)我无法弄清楚为什么这个错误是被扔向我。
答案 0 :(得分:6)
嗯,while(self.running == True)
在任何方法(def
)中都不是,因此没有名为self
的变量范围(NameError
所说的)......
...也许有一些缺失的缩进?虽然之前的pass
使其看起来比缺少更多:可能def run(self):
?
请记住,self
只是第一个参数的常规(和正确)名称,用于隐式传递“当前实例”的方法。
快乐的编码。