Python Класс: невозможно увеличить счетчик отключений с момента обслуживания при переключении True на Falsenor, сбрасывая счетчик на ноль после ремонта - PullRequest
0 голосов
/ 01 апреля 2020
"""
class vehicle:
    def __init__(self, make, model, year, weight):
        self.make = make
        self.model = model
        self.year = year
        self.weight = weight
        self.NeedsMaintenance = False
        self.TripsSinceMaintenance = int(0)

    def __str__(self):
        return str(self.__class__) + ": " + str(self.__dict__)

    def get_descriptive_name(self):
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model + ' ' + self.weight
        return long_name.title()

    def increment_TripsSinceMaintenance(self, Trips):
        self.TripsSinceMaintenance_reading += Trips

    def update_TripsSinceMaintenance(self, TripsRecorded):
        if TripsRecorded >= self.TripsSinceMaintenance_reading:
            self.TripsSinceMaintenance_reading = TripsRecorded

    def read_TripsSinceMaintence(self):
        print("This car has made " + str(self.TripsSinceMaintenance_reading) + " trips up to now.")

class car(vehicle):
    def __init__(self, make, model, year, weight, drive, stop,):
        vehicle.__init__(self, make, model, year, weight, )
        self.drive = drive
        self.stop = stop
        self.TripsSinceMaintenance = int(110)

    def drive(self):
        self.isDriving = True
        if  not self.isDriving & self.TripsSinceMaintenance <= int(100):
            self.TripsSinceMaintenance_reading += self.Trips


    def stop(self):
        self.isDriving = False
        if not self.isDriving or self.TripsSinceMaintenance >= int(100):
            self.isDriving == True


    def repair(self):
        if self.TripsSinceMaintenance >= int(100): 
            self.update_TripsSinceMaintenance = 0 & self.stop == False


my_tesla = car('tesla', 'model s', 2016, '70k', False, False)
print(my_tesla)

<class '__main__.car'>: {'make': 'tesla', 'model': 'model s', 'year': 2016, 'weight': '70k', 'NeedsMaintenance': False, 'TripsSinceMaintenance': 110, 'drive': False, 'stop': False}

Печать правильно показывает автомобиль и его детали, но не делает именно то, что мне нужно. Мне нужно, чтобы счетчик TripsSinceMaintenance, изначально установленный на 0 в родительском классе, увеличивался при переключении isDriving с true на false. А затем, когда TripsSinceMaintenance превышает 100, логическое значение NeedsMaintenance должно быть установлено на true, а не на false, как изначально установлено.

Метод «Восстановить» также должен сбросить TripsSinceMaintenance на ноль, а NeedsMaintenance на false.

Я не уверен, нужно ли мне импортировать Counter или у меня неправильный метод для переключения True на False и многие поиски не помогли. Довольно новый для Python, поэтому любая помощь будет принята с благодарностью

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...