我的代码有一些问题。我正在按照“使用 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")
毕竟,您需要一个类的实例供以后使用。
