【问题标题】:NameError in Pygame - global name "name" is not definedPygame 中的 NameError - 未定义全局名称“name”
【发布时间】:2013-11-10 22:14:01
【问题描述】:

我正在用 Pygame 编写一个简单的游戏,但遇到了一个令人讨厌的错误。我将一堆与绘制运动矢量相关的代码分组到两个单独的函数中,每个函数对应一个。

from __future__ import division
import math
import sys
import pygame


class MyGame(object):
    def __init__(self):
        pass

    def cat_chase():
        # bunch of code here

    def dog_chase():    
        # more code

    def run(self):
        # event handling           

    def draw(self):
        """Update the display"""
        self.screen.fill(self.bg_color)

        self.cat_chase()
        self.dog_chase()


        pygame.display.flip()

MyGame().run()
pygame.quit()
sys.exit()

然后,我得到的错误是:

    NameError: global name 'cat_chase' is not defined

我想知道为什么 cat_chase 没有定义?提前致谢。

【问题讨论】:

  • 在开头添加self. 后是否重新加载此文件?

标签: python class pygame


【解决方案1】:

self 参数添加到您的方法中:

def cat_chase(self):
    ...

def dog_chase(self):
    ...

所以你可以这样称呼它:

obj.cat_chase()

【讨论】:

  • 虽然这是真的,但它不能是命名异常的来源,因为它会引发其他类型的错误。但它也需要修复才能使这些东西正常工作,所以尽管如此 +1。
猜你喜欢
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 2012-05-29
  • 2013-08-23
  • 2014-04-03
  • 2017-05-12
相关资源
最近更新 更多