Python 使用“时出现名称错误”;“自我”;在课堂上?

Python 使用“时出现名称错误”;“自我”;在课堂上?,python,pygame,Python,Pygame,我有以下Python(3.2)代码: 这会引发错误:NameError:Name“self”未定义。 我基本上是一个python新手,希望利用这段时间开始学习python和pygame,然后我可以将它们用于我的大学项目(一石二鸟),我不明白为什么会有人向我抛出这个错误。嗯,while(self.running==True)没有任何方法(def)因此,范围中没有称为self的变量(这就是namererror所说的) …也许有一些缺少的缩进?虽然前面的过程使它看起来比缺少的更多:可能def run(

我有以下Python(3.2)代码:

这会引发错误:
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):