[英]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.