这是一个问题; 使用以下数据属性创建汽车类
__year_model
__make
__speed
该课程应该采用__init__
方法接受汽车年份模型
并作为参数。该值应分配给对象__year_model
和__make attributes
。它应该为__speed
数据属性
它还应该有以下方法:
加速:加速应该每次加速5加速数据属性 被称为。
刹车:此方法应从速度减去5
get_speed:这应显示当前速度
接下来,设计一个创建Car对象的程序,然后调用acceleration方法 五次。每次调用加速方法后,获取当前车速和 显示它。然后调用制动方法五次。每次调用制动方法后,得到 当前的速度和显示它。
class Car:
def __init__(self,year_model,make,speed):
self.year_mode = year_model
self.make = make
self.speed = 0
def accelerate(self,accelerate):
self.accelerate = accelerate
speed = 0
for x in range(5):
speed = speed + 5
print speed
def brake(self,brake):
self.brake = brake
speed = 0
for x in range(5):
brake = brake - 5
print brake
def get_speed(self):
return self.speed
test = Car(2006,'Honda',100)
我知道test就是实例。它也是对象吗? 谢谢
答案 0 :(得分:2)
是的,test
是一个对象,即类的实例是一个对象。
你的课需要一些工作。根据规范,speed
不应传递给__init__()
。删除该内容并将self.__speed
初始化为0
中的__init__()
。
accelerate()
和brake()
不应该接受参数 - 每个方法应该将当前速度提高5,或者将速度降低5.因此这些方法不需要任何参数(除了self
)。
所以accelerate()
应该是这样的:
def accelerate(self):
self.__speed += 5 # shorthand for self.speed = self.speed + 5
每次调用时只会将速度提高5。请注意,使用self
以使成员__speed
递增,而不是某些临时局部变量。您可以对brake()
执行相同操作。
除此之外,添加分配指定的测试:在每次调用后调用accelerate
5次打印速度。同样适用于brake
方法。输出是否符合您的期望?
像这样测试:
car = Car(2006,'Honda')
for i in range(5):
car.accelerate()
print(car.get_speed())
for i in range(5):
car.brake()
print(car.get_speed())
哦,按照规范__speed
命名您的会员,而不是speed
等。