Python 3.x 使用方法创建类
我编写了一个名为car的类,它具有model、year和speed属性。它还有加速、刹车、鸣笛三种方法。我试图在每次调用accelerate时添加5个,但无法使其工作。我做错了什么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
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