У каждого корабля есть свое топливо, поэтому не стоит использовать статическое электричество. Если вы не хотите, чтобы параметр выглядел как метод, рассмотрите свойство. Он также включает проверку стоимости топлива.
class Ship(object):
def __init__(self, name="Enterprise", fuel=0):
self.name = name
self._fuel = fuel
print "The spaceship", name, "has arrived!"
def status(self):
print "Name: ", self.name
print "Fuel level: ", self.fuel
@property
def fuel(self):
return self._fuel
@fuel.setter
def fuel(self,level):
if level < 0:
self._fuel = 0
else:
self._fuel = level
В main () рассмотрите циклы для инициализации кораблей и отображения статуса вместо повторяющегося кода, и используйте ship.fuel вместо self.fuel. self допустимо только в методах класса.
def main():
ships = []
for n in range(4):
ship = Ship(raw_input("What would you like to name this ship?"))
ship.fuel = int(raw_input("How much fuel does this ship have?"))
ships.append(ship)
for ship in ships:
ship.status()
main()
raw_input("Press enter to exit.")