1

質問は次のとおりです

次のデータ属性を持つ Car という名前のクラスを作成します。

__year_model(車の年式の場合)

__make(車種の為)

__speed(車の現在の速度)

Car クラス__init__には、車の年式と make を引数として受け取るメソッドが必要です。__speedまた、 data 属性に 0 を割り当てる必要があります。

クラスには、次のメソッドも必要です。

• 加速 加速メソッドは、呼び出されるたびに速度データ属性に 5 を追加する必要があります。

• Brake Brake メソッドは、呼び出されるたびに速度データ属性から 5 を減算する必要があります。

• get_speed get_speed メソッドは、現在の速度を返す必要があります。

次に、車のオブジェクトを作成してから、accelerated メソッドを 5 回呼び出すプログラムを設計します。加速メソッドを呼び出すたびに、車の現在の速度を取得して表示します。次に、brake メソッドを 5 回呼び出します。Brake メソッドを呼び出すたびに、車の現在の速度を取得して表示します。

エラーが発生していますTypeError: __init__() missing 3 required positional arguments: 'year', 'make', and 'speed'

私のコード:

#create class called car

class Car:
    def __init__(self,year,make,speed):
        self.__year_model=year
        self.__make=make
        self.__speed=0

    #set the arguments for speed,year, and make
    def set_year_model(self,year):
        self.__year_model=year

    def set_make(self,make):
        self.__make=make

    def set_speed(self,speed):
        self.__speed=0

    #the returns for speed, year, and make
    def get_year_model(self):
        return self.__year_model

    def get_make(self):
        return self.__make

    def get_speed(self):
        return self.__speed


    #methods
    def accelerate(self):
        self.speed +=5

    def brake(self):
        self.speed-=5

    def get_speed(self):
        return self.speed

#actuall program
#create car object
def main():
    my_car=Car()

    year=print(input('car year: '))
    make=print(input('car make: '))
    speed= print('Current speed is 0')

    #accelerate 5 times

    my_car.accelerate()
    print('My current speed:',my_car.get_speed())
    my_car.accelerate()
    print('My current speed:',my_car.get_speed())
    my_car.accelerate()
    print('My current speed:',my_car.get_speed())
    my_car.accelerate()
    print('My current speed:',my_car.get_speed())
    my_car.accelerate()
    print('My current speed:',my_car.get_speed())

    #brake five times
    my_car.brake()
    print('My current speed after brake:',my_car.get_speed())
    my_car.brake()
    print('My current speed after brake:',my_car.get_speed())
    my_car.brake()
    print('My current speed after brake:',my_car.get_speed())
    my_car.brake()
    print('My current speed after brake:',my_car.get_speed())
    my_car.brake()
    print('My current speed after brake:',my_car.get_speed())

main()
4

4 に答える 4

3

クラスの__init__for は、Car渡していない 3 つの引数を取ります。

year=input('car year: '))
make=input('car make: '))
speed=0
print'Current speed is', speed
#actuall program
#create car object
def main():
my_car=Car(year, make, speed)

printの前にこれらのステートメントは必要ありませんinput。あなたがそれで何をしているのかわからない。またspeed= print('Current speed is 0')、正しくありません。

この関数は常に速度をゼロに戻します。それが意図したものである場合は、引数を渡す必要はありませんspeed。init と同じことです。引数を使用していない場合、引数を渡す必要はありません。

def set_speed(self,speed):
    self.__speed=0
于 2013-11-05T01:31:24.480 に答える