0

クラスファイルで問題が発生しましたが、修正方法が見つからないようです。私は誰かが私を正しい方向に向けてくれることを望んでいました。

これが私のコードです:

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

    def set_year_model(self, year_model):
        self.__year_model = year_model

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

    def get_year_model(self):
        return self.__year_model

    def get_make(self):
        return self.__make

    def accelerate(self):
        self.__speed + 5
        return self.__speed

    def decelerate(self):
        self.__speed - 5
        return self.__speed

    def get_speed(self):
        return self.__speed 

基本的に、speed属性を0に設定し、speed属性に5を加算および減算し、最終的にspeed属性を返して印刷できるようにする3つのメソッド(accelerate、decelerate、およびget_speed)が必要です。

フォーマットに問題があると思いますが、クラスを修正する正しい配置を見つけることができないようです。

実際のプログラムはacceleratedメソッドを5回ループすることを想定していますが、classメソッドは順次加算を処理し、最終速度を返すことになっています。

import car

user_year = 1995
user_make = "toyota"
user_speed = 0

user_car = car.Car(user_year, user_make, user_speed)

for count in range(1,6):
user_car.accelerate()

print user_car.get_speed()

私はこのコードが非常に弱いことを知っていますが、私の問題をより明確にするのに役立つのはすべてその場しのぎです。だからうまくいけば、それはあまり混乱しておらず、私は答えを得ることができます。

4

2 に答える 2

5

self._speed + 5現在の速度に5を加えたものを計算します。ただし、実際には計算値をどこにも保存していません。self._speed = self._speed + 5、またはより一般的に使用される形式を使用しますself._speed += 5

于 2012-06-01T00:00:15.500 に答える
0

もちろん、問題は「+ =」と「-=」の部分が欠落していることですが、さらに一歩進んで、新しいPythonコードを作成している場合は、新しいスタイルのクラスに慣れることをお勧めします。新しいスタイルクラスでは、コードは次のように記述できます。

class Car(object):
    def __init__(self, year_model, make, speed):
        self.year_model = year_model
        self.make = make
        self.speed = 0

    def __set_year_model(self, year_model):
        self.__year_model = year_model

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

    def __set_speed(self, speed):
        self.__speed = speed

    def __get_year_model(self):
        return self.__year_model

    def __get_make(self):
        return self.__make

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

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

    def __get_speed(self):
        return self.__speed 

    speed = property(fget=__get_speed,fset=__set_speed,fdoc="Set or Retrieve the current speed of this instance of the Car object")
    make = property(fget=__get_make,fset=__set_make,fdoc="Set or Retrieve the make of this instance of the Car object")
    year_model = property(fget=__get_year_model,fset=__set_year_model,fdoc="Set or Retrieve the Year and Model of this instance of the Car object")

さらに、メインファイルのコードが変更されます。

import car

user_year = 1995
user_make = "toyota"
user_speed = 0

user_car = car.Car(user_year, user_make, user_speed)

for count in range(1,6):
    user_car.accelerate()

print user_car.speed
于 2012-06-01T00:17:58.027 に答える