[英]Not sure solution is correct for python classes
这是问题; 使用以下数据属性创建汽车类
__year_model
__make
__speed
该类应具有__init__
方法,该方法接受汽车的年份模型并将其作为参数。 该值应分配给对象__year_model
和__make attributes
。 它应该为__speed
数据属性分配0
它还应具有以下方法:
加速:每次调用时,加速应在速度数据属性中添加5。
刹车:此方法应从速度中减去5
get_speed:这应该显示当前速度
接下来,设计一个程序,该程序创建一个Car对象,然后调用加速方法五次。 每次调用加速方法后,获取汽车的当前速度并显示出来。 然后调用制动方法五次。 每次调用制动方法后,获取汽车的当前速度并显示出来。
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
是一个对象,即类的实例是一个对象。
您的课堂需要做一些工作。 根据规范,不应将speed
传递给__init__()
。 删除它并在__init__()
中将self.__speed
初始化为0
。
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
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.