2017-10-09 7 views
0

Ich schrieb eine Klasse namens Auto mit den Attributen Modell, Jahr und Geschwindigkeit. Es hat auch 3 Methoden, die beschleunigen, bremsen, honk_horn. Ich versuche jedes Mal, wenn accelerate aufgerufen wird, 5 hinzuzufügen, aber ich kann es nicht zur Arbeit bringen. Was mache ich hier falsch?Erstellen einer Klasse mit Methoden

class Car: 
    """Defines the Car class. 
     Data attributes: model of type str 
         year of type int 
         speed of type float 
    """ 

    def __init__(self, model, year, speed=0): 
     """Creates new Car object with specified model, year, and speed""" 
     self.model = model 
     self.year = year 
     self.speed = speed 

    def accelerate(self): 
     self.speed + 5 #everytime it is called 

    def brake(self): 
     if self.speed != 0: #If speed already zero don't minus 5 
      self.speed - 5 
     else: 
      self.speed 

    def honk_horn(self): 
     print("{} goes 'beep beep'".format(self.model)) 

Ich soll 35 erhalten, wenn unter Verwendung des Tests testen, aber ich 30 nur erhalten:

my_car = Car("Zastava", 2001, 30) 
my_car.accelerate() 
my_car.accelerate() 
my_car.brake() 
print(my_car.speed) 
+1

Sie müssen 'self.speed = self.speed + 5' oder' self.speed + = 5' eingeben – MushroomMauLa

Antwort

5

Sie sind nicht Wert self.speed zuweisen. Sie führen einfach Mathematik durch, ohne das Ergebnis zu verwenden.

Veränderungsrechnung unter:

self.speed + 5 #everytime it is called 

dazu:

self.speed = self.speed + 5 #everytime it is called 

oder dies:

self.speed += 5 #everytime it is called 
1
 self.speed + 5 #everytime it is called 

sollte

Wo ich hinzugefügt a + = statt nur +

Zusätzlich Ihre brake Funktion ist falsch in ähnlicher Weise

0

Änderung self.speed + 5-self.speed = self.speed + 5 Änderung self.speed - 5-self.speed = self.speed - 5 , die funktionieren sollte

Verwandte Themen