簡體   English   中英

不確定解決方案是否適用於python類

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM