我想制作一个创建宇宙飞船的程序,我使用status()方法来显示船的名称和燃料值。但是,它似乎并没有工作。我想我可能已经搞糟了status()方法。我也试图让我可以改变燃料价值,但我不想创造一种新的方法来做到这一点。我想我已经在那里发生了一个可怕的错误转向。请帮助!飞船对象
class Ship(object):
def __init__(self, name="Enterprise", fuel=0):
self.name=name
self.fuel=fuel
print "The spaceship", name, "has arrived!"
def status():
print "Name: ", self.name
print "Fuel level: ", self.fuel
status=staticmethod(status)
def main():
ship1=Ship(raw_input("What would you like to name this ship?"))
fuel_level=raw_input("How much fuel does this ship have?")
if fuel_level<0:
self.fuel=0
else:
self.fuel(fuel_level)
ship2=Ship(raw_input("What would you like to name this ship?"))
fuel_level2=raw_input("How much fuel does this ship have?")
if fuel_level2<0:
self.fuel=0
else:
self.fuel(fuel_level2)
ship3=Ship(raw_input("What would you like to name this ship?"))
fuel_level3=raw_input("How much fuel does this ship have?")
if fuel_level3<0:
self.fuel=0
else:
self.fuel(fuel_level3)
Ship.status()
main()
raw_input("Press enter to exit.")
+1。此外,果酱,确保您的缩进是正确的。 '__init__'和'status'必须在你的类定义中缩进。 – 2010-03-23 14:23:38
是的。我很想知道为什么OP认为它应该是一个静态方法。 – 2010-03-23 14:43:01
他们缩进,它只是没有这样做,当我在这里复制它。好吧。哈哈,我不知道为什么我决定它应该是静态的。我正在研究Python书,并且刚刚介绍了静态方法,所以我试图完成这项工作。但我想我应该只在有意义时才使用它! – Jam 2010-03-23 14:49:29