使用方法创建 class
Creating a class with methods
我写了一个 class 命名为 car 的属性 model、year 和 speed。它还有加速、刹车、honk_horn3种方法。每次调用加速时我都试图添加 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 + 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
应该有效
我写了一个 class 命名为 car 的属性 model、year 和 speed。它还有加速、刹车、honk_horn3种方法。每次调用加速时我都试图添加 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 + 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
应该有效