2016-09-19 7 views
1

ここに質問があります。以下のデータはPythonクラスの解決策がわからない

__year_model 
__make 
__speed 

属性が付いている車のクラスを作成 クラスは、車の年モデル を受け入れる__init__方法を持っているし、引数として行う必要があります。値はオブジェクト__year_model__make attributesに割り当てる必要があります。

が加速:データはそれ が呼び出されるたびに属性の速度に5を追加する必要があります加速する、それは次のような方法をも持っている必要があり

属性__speedデータに0を割り当てる必要があります。

ブレーキ:速度から5を減算する必要があり、この方法は

get_speed:これは現在の速度

次のページを表示する必要があり、方法 5回加速車のオブジェクトを作成するプログラムを設計し、次にコール。アクセラレーションメソッドを呼び出すたびに、現在の速度を取得して と表示します。その後、ブレーキ方法を5回呼び出します。ブレーキメソッドを呼び出すたびに、 を車の現在の速度に合わせて表示します。

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) 

私はテストがインスタンスであることを知っています。それはオブジェクトですか? ありがとう

答えて

2

はい、testは、オブジェクト、つまりクラスのオブジェクトです。オブジェクトはです。

クラスにはいくつかの作業が必要です。仕様によると、speed__init__()に渡されるべきではありません。それを取り除き、を0に設定して__init__()に初期化します。

accelerate()brake()を引数を取ることになっていない - 各方法は、したがって、これらの方法は、(self以外)の任意の引数を必要としない5によって現在の速度を増加させる、または5で速度を減少させるべきであるのいずれか。

のでaccelerate()はこのようになります。単純に5で、それが呼び出されるたびに速度を増加させる

def accelerate(self): 
    self.__speed += 5 # shorthand for self.speed = self.speed + 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など

+0

あなたがそのと呼ばれる私が加速呼び出すたびに5 第一時間で上がるべきであると言っている5 2回目の10 と呼ばそれとも同じように、一度にすべてをプリントアウトする必要がありますか? – JDDoe

+0

@ JDDoe:これは私が仕様を読んだ方法です:最初のスピードは0、 'accelerate()'は_current_スピードを呼び出すたびに5ずつ増加させます。 3回目以降は15など – mhawke

+0

私は読める形式で投稿しようとしていますが、期待通りにはできません http://pastebin.com/STwgj5pM – JDDoe

関連する問題