Урок 66 — Домашнее задание: Основы ООП

📁 Блок: Python Fundamentals / ООП ⏱️ Время изучения: ~40 мин 🎯 Сложность: Средняя
#class #pass #def #print #return

⚡ Кратко

Два 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

  1. Создайте файл lesson66_homework.py.
  2. Скопируйте решения в файл.
  3. Запустите: python lesson66_homework.py.
  4. Убедитесь, что вывод совпадает с примерами.

Проверить по документации: аннотации типов и стрелочные подсказки возвращаемых значений выходят за рамки исходного материала урока.