使用python为Car编写一个类

问题描述 投票:0回答:1

我正在尝试为汽车编写一个类,但我没有得到正确的输出。每次调用时,制动数据应从速度数据属性中减去 5。

我尝试了下面的代码,制动的预期输出应该是

刹车0:20,刹车1:15,刹车2:10,刹车3:5,刹车4:0

class Car:
    def __init__(self,__year_model, __make):
        self.__year_model = __year_model
        self.__make = __make
        self.__speed = 0


    def accelerate(self):
        self.__speed += 5


    def brake(self):
        self.__speed = -=5

    def get_speed(self):
        return self.__speed


from car import Car
my_car = Car("Corvette", 2022)

for a in range(0,5):
     b = my_car.accelerate()
     speed = my_car.get_speed()
     print(f"accelerate {a}: {speed}")


print()


for x in range(0,5):
    ac = my_car.brake()
    speed = my_car.get_speed()
    print(f"brake {x}: {speed}")
    
output:

accelerate 0: 5
accelerate 1: 10
accelerate 2: 15
accelerate 3: 20
accelerate 4: 25

brake 0: -5
brake 1: -5
brake 2: -5
brake 3: -5
brake 4: -5
python class
1个回答
0
投票

您的代码中有一个拼写错误

self.speed = -=5
;我已将其修改为
self.speed += -5
(您也可以将其写为
self.speed -= 5
)。

class Car:
    def __init__(self, year_model, make):
        self.year_model = year_model
        self.make = make
        self.speed = 0


    def accelerate(self):
        self.speed += 5


    def brake(self):
        self.speed += -5

    def get_speed(self):
        return self.speed

加速

my_car = Car("Corvette", 2022)

for a in range(0,5):
     b = my_car.accelerate()
     speed = my_car.get_speed()
     print(f"accelerate {a}: {speed}")

## result
# accelerate 0: 5
# accelerate 1: 10
# accelerate 2: 15
# accelerate 3: 20
# accelerate 4: 25

减速

for x in range(0,5):
    ac = my_car.brake()
    speed = my_car.get_speed()
    print(f"brake {x}: {speed}")

## result
# brake 0: 20
# brake 1: 15
# brake 2: 10
# brake 3: 5
# brake 4: 0
© www.soinside.com 2019 - 2024. All rights reserved.