Skip to main content
 首页 » 编程设计

Python语法错误

2025年05月04日17lori

我的代码有一些问题。我正在按照“使用 Python 和 Pygame 开始游戏开发”一书中的示例(示例 2-4 和 2-5)进行操作,但出现语法错误。以下是有问题的代码。我是 Python 的新手,可能只是打错了字。

本书使用python 2.4。我收到 2.7 和 3.2 的错误。

两个问题:

代码行:

my_tank = Tank("Bob") 

收到语法错误。 my_tank 突出显示。我确实让它开始工作,但我不确定它为什么开始工作。

代码行:

print self.name, "fires on", enemy.name 

也收到语法错误。此行中的 self 被突出显示。当 my_tank 开始工作时,我开始收到此错误。不确定这里发生了什么。

class Tank(object): 
 
    def _init_(self, name): 
        self.name = name 
        self.alive = True 
        self.ammo = 5 
        self.armor = 60 
 
    my_tank = Tank("Bob") 
 
    def _str_(self): 
 
        if self.alive: 
            return "%s (%i armor, %i shells)" % (self.name, self.armor, self.ammo) 
        else: 
            return "%s (dead)" % self.name 
 
    def fire_at(self, enemy): 
 
        if self.ammo >= 1: 
            self.ammo -= 1 
            print self.name, "fires on", enemy.name 
            enem.hit() 
        else: 
            print self.name, "has no shells!" 
 
    def hit(self): 
 
        self.armor -= 20 
        print self.name, "is hit!" 
        if self.armor <= 0: 
            self.explode() 
 
    def explode(self): 
 
        self.alive = False 
        print self.name, "explodes!" 

请您参考如下方法:

正如@aland 指出的那样,函数名称应该是 __init__ 和 __str__。

另外,这一行应该在类的外面:

my_tank = Tank("Bob") 

毕竟,您需要一个类的实例供以后使用。