【问题标题】:Creating a class with methods用方法创建一个类
【发布时间】:2017-10-09 10:44:27
【问题描述】:

我编写了一个名为 car 的类,其属性为模型、年份和速度。它也有3种方法,分别是加速、刹车、喇叭喇叭。每次调用加速时我都试图添加 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+5self.speed+=5

标签: python-3.x class python-3.5


【解决方案1】:

您没有为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

【讨论】:

    【解决方案2】:
            self.speed + 5 #everytime it is called
    

    应该是

            self.speed += 5 #everytime it is called
    

    我添加了一个 += 而不是 +

    另外,你的brake 函数也有类似的错误

    【讨论】:

      【解决方案3】:

      更改self.speed + 5toself.speed = self.speed + 5 更改self.speed - 5toself.speed = self.speed - 5 应该可以的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-01
        • 1970-01-01
        • 2014-07-14
        • 2022-01-01
        • 2013-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多