Python 3.x 使用方法创建类

Python 3.x 使用方法创建类,python-3.x,class,python-3.5,Python 3.x,Class,Python 3.5,我编写了一个名为car的类,它具有model、year和speed属性。它还有加速、刹车、鸣笛三种方法。我试图在每次调用accelerate时添加5个,但无法使其工作。我做错了什么 class Car: """Defines the Car class. Data attributes: model of type str year of type int speed of ty

我编写了一个名为car的类,它具有model、year和speed属性。它还有加速、刹车、鸣笛三种方法。我试图在每次调用accelerate时添加5个,但无法使其工作。我做错了什么

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))
使用下面的测试时,我应该得到35分,但我只得到30分:

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

您没有为
self.speed
赋值。你只是在做数学而不使用结果

更改声明如下:

self.speed + 5 #everytime it is called
为此:

self.speed = self.speed + 5 #everytime it is called
或者这个:

self.speed += 5 #everytime it is called

您没有为
self.speed
赋值。你只是在做数学而不使用结果

更改声明如下:

self.speed + 5 #everytime it is called
为此:

self.speed = self.speed + 5 #everytime it is called
或者这个:

self.speed += 5 #everytime it is called
应该是

        self.speed += 5 #everytime it is called
我添加了一个+=而不是+

此外,您的
制动
功能也有类似的错误

应该是

        self.speed += 5 #everytime it is called
我添加了一个+=而不是+


此外,您的
brake
功能也有类似的错误

self.speed+5
更改为
self.speed=self.speed+5
self.speed-5
更改为
self.speed=self.speed-5

这应该有效

self.speed+5
更改为
self.speed=self.speed+5
self.speed-5
更改为
self.speed=self.speed-5

这应该行得通

你必须做
self.speed=self.speed+5
self.speed+=5
你必须做
self.speed=self.speed+5
self.speed+=5