В Python в класс Battery нужно добавить метод upgrade_battery() . Он должен проверять размер батареи и устанавливать емкость 100 если она меньше 100

Рейтинг: -1Ответов: 2Опубликовано: 21.08.2023
class Car:
    """Простая попытка смоделировать машину."""

    def __init__(self, make, model, year):
        """Инициировать атрибут чтоб писует машину."""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        """Вернуть отфарматированое содержимое имя """
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name.title()

    def read_odometer(self):
        """Вывести сообщение с пробегом автомобиля"""
        print(f"This car has {self.odometer_reading} miles on it.")

    def update_odometer(self, mileage): # 2 Способ изменить знечение .
        """
        Задать значение одометра.
        Отклонить измену в случае попытки отмотать показатель одометра 
        """
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        
        else:
            print("You can't roll back an odometer")

    def increment_odometer(self, miles):
        """Додать заданое значение до показателя одометра"""
            
        self.odometer_reading += miles


class Battery:
    """Простая попытка смоделировать акамулятор електрокара"""

    def __init__(self, battery_size=75):
        """Создать атрибуты акамулятора"""
        self.battery_size = battery_size
        self.full_battery = 100


    def describe_battery(self):
        """Вывести сообщение про размер аккамулятора"""
        print(f"This car has a {self.battery_size}-kWh battery.")

    def describe_full_battery(self):
        """Вывести сообщение про размер аккамулятора"""
        print(f"This car has a {self.full_battery}-kWh battery.")

    def get_range(self):
        """
        Вывести сообщение про растояние,
        которое может проехать авто 
        относительно до обьема батареи.
        """
        if self.battery_size == 75:
            range = 260
        elif self.battery_size == 100:
            range = 315
        print(f"This car can go about {range} miles on a full charge.")

    def upgrade_battery(self):
        ...
        

class ElectricCar(Car):
    """Смоделировать характеристики, присущие електрокарам"""

    def __init__(self, make, model, year):

        """
        Создать атрибуты базового класу
        Потом создать атрибуты електроавтомобиля
        """
        super().__init__(make, model, year)
        self.battery = Battery()
        

    def fill_gas_tank(self):
        """Електроавтомобили не имеют бензобаков"""
        print("This car doesn't need a gas tank!")


    my_tesla = ElectricCar('tesla', 'model s', 2019)
    my_i3 = ElectricCar('BMW', 'i3', 2020)


    print(my_tesla.get_descriptive_name())
    my_tesla.battery.describe_battery()
    my_tesla.fill_gas_tank()
    my_tesla.battery.get_range()

    print(my_i3.get_descriptive_name())
    my_i3.battery.get_range()

В класс Battery нужно добавить метод upgrade_battery(). Он должен проверять размер батареи и устанавливать емкость 100 если она меньше 100. Создать электрокар с уставным размером батареи и вызвать к нему метод get_range() и потом вызвать get_range() второй раз после обновления аккумулятора. В другом классе - class ElectricCar(Car)

Ответы

▲ 1

Поскольку батарея после вызова метода в любом случае будет равна 100, можно сразу задать значение 100:

def upgrade_battery(self):
    self.battery_size = 100 
▲ 0
def upgrade_battery(self):
    if self.battery_size <= 100:
        self.battery_size = 100 

Правильный ответ?

def upgrade_battery(self):
    if self.battery_size <= 100:
        self.battery_size == 100

А я вводил так . Тупняк конкретный ))))