Урок 66 — Домашнее задание: Основы ООП
⚡ Кратко
Два LMS-задания: класс Rectangle (площадь) и класс Counter (увеличение/уменьшение).
🏠 Задание 1. Класс Rectangle
Создайте класс Rectangle, который описывает прямоугольник.
- У каждого объекта должны быть два поля:
widthиheight. - Добавьте метод
get_area(), который возвращает площадь прямоугольника. - Создайте объект прямоугольника с произвольными значениями.
- Выведите его площадь.
- Измените ширину и высоту.
- Выведите новую площадь.
Пример вывода:
Площадь: 20
Новая площадь: 35
Решение
class Rectangle:
def __init__(self, width: int, height: int) -> None:
self.width = width
self.height = height
def get_area(self) -> int:
return self.width * self.height
rect = Rectangle(4, 5)
print("Площадь:", rect.get_area())
rect.width = 5
rect.height = 7
print("Новая площадь:", rect.get_area())
🏠 Задание 2. Класс Counter
Реализуйте класс Counter, который представляет собой простой счётчик.
- Счётчик должен начинаться с нуля.
- Предусмотрите методы для увеличения и уменьшения значения на единицу, при этом при каждой операции должно отображаться новое значение счётчика.
- Добавьте метод, возвращающий текущий результат.
- Проверьте работу счётчика, выполнив несколько операций.
Пример вывода:
Значение увеличено, текущее: 1
Значение увеличено, текущее: 2
Значение увеличено, текущее: 3
Значение уменьшено, текущее: 2
Текущее значение: 2
Решение
class Counter:
def __init__(self) -> None:
self.value = 0
def increment(self) -> None:
self.value += 1
print(f"Значение увеличено, текущее: {self.value}")
def decrement(self) -> None:
self.value -= 1
print(f"Значение уменьшено, текущее: {self.value}")
def get_value(self) -> int:
return self.value
counter = Counter()
counter.increment()
counter.increment()
counter.increment()
counter.decrement()
print("Текущее значение:", counter.get_value())
🏠 Проверка в VS Code
- Создайте файл
lesson66_homework.py. - Скопируйте решения в файл.
- Запустите:
python lesson66_homework.py. - Убедитесь, что вывод совпадает с примерами.
Проверить по документации: аннотации типов и стрелочные подсказки возвращаемых значений выходят за рамки исходного материала урока.