Python 使用“时出现名称错误”;“自我”;在课堂上?
我有以下Python(3.2)代码: 这会引发错误:Python 使用“时出现名称错误”;“自我”;在课堂上?,python,pygame,Python,Pygame,我有以下Python(3.2)代码: 这会引发错误:NameError:Name“self”未定义。 我基本上是一个python新手,希望利用这段时间开始学习python和pygame,然后我可以将它们用于我的大学项目(一石二鸟),我不明白为什么会有人向我抛出这个错误。嗯,while(self.running==True)没有任何方法(def)因此,范围中没有称为self的变量(这就是namererror所说的) …也许有一些缺少的缩进?虽然前面的过程使它看起来比缺少的更多:可能def run(
NameError:Name“self”未定义。
我基本上是一个python新手,希望利用这段时间开始学习python和pygame,然后我可以将它们用于我的大学项目(一石二鸟),我不明白为什么会有人向我抛出这个错误。嗯,while(self.running==True)
没有任何方法(def
)因此,范围中没有称为self
的变量(这就是namererror
所说的)
…也许有一些缺少的缩进?虽然前面的过程使它看起来比缺少的更多:可能def run(self):
请记住,self
只是为隐式传递“当前实例”的方法的第一个参数指定的常规(正确)名称
愉快的编码。好吧,while(self.running==True)
不在任何方法(def
)中,因此范围内没有称为self
的变量(这就是namererror
所说的)
…也许有一些缺少的缩进?虽然前面的过程使它看起来比缺少的更多:可能def run(self):
请记住,self
只是为隐式传递“当前实例”的方法的第一个参数指定的常规(正确)名称
快乐的编码。一个小小的吹毛求疵-说if(b==True):
是糟糕的形式。相反,只使用<代码>(b)< /COD>。我的第一语言是C++,所以请原谅我!我将在将来尽量记住python风格:如果你是python新手,你应该读到它包含了惊人数量的“啊哈!”你从未想过的时刻和巧妙的技巧。只是快速浏览并尝试“导入此”。我的心都碎了!我将把它添加到书签中,并在早上通读,它看起来很棒,谢谢你的链接:)一个小小的挑剔——上面说,if(b==True):
是糟糕的形式。相反,只使用<代码>(b)< /COD>。我的第一语言是C++,所以请原谅我!我将在将来尽量记住python风格:如果你是python新手,你应该读到它包含了惊人数量的“啊哈!”你从未想过的时刻和巧妙的技巧。只是快速浏览并尝试“导入此”。我的心都碎了!我将把它添加到书签中,并在早上通读,它看起来很棒,谢谢你的链接:)我觉得有点傻,因为某种原因,我觉得在导入模块时,类中最后的代码会执行(我不知道为什么)。我还在习惯这种巨蟒魔法!感谢您快速而清晰的回答:)我觉得有点傻,因为某种原因,我觉得类中最后的代码在导入模块时执行(我不知道为什么)。我还在习惯这种巨蟒魔法!感谢您快速清晰的回复:)
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):