Глава 14 · Создаём объекты реального мира

Мини-проект: Rectangle

Проверенные размеры и вычисляемые площадь с периметром — property в реальном классе.

Мини-проект: Rectangle

Класс прямоугольника с проверенными размерами и вычисляемыми площадью/периметром:

rectangle.py
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    @property
    def width(self):
        return self._width

    @width.setter
    def width(self, value):
        if value <= 0:
            raise ValueError("ширина должна быть положительной")
        self._width = value

    @property
    def height(self):
        return self._height

    @height.setter
    def height(self, value):
        if value <= 0:
            raise ValueError("высота должна быть положительной")
        self._height = value

    @property
    def area(self):
        return self.width * self.height

    @property
    def perimeter(self):
        return 2 * (self.width + self.height)
Rectanglewidth (property)height (property)area (property)perimeter (property)
Rectangle — все четыре доступны как атрибуты, но два из них проверяют значение, два вычисляются
ispolzovanie.py
r = Rectangle(10, 4)
print(r.area, r.perimeter)   # 40 28
r.width = 6
print(r.area)                 # 24 — пересчиталось само
r.width = -1                  # ValueError
★★ Самостоятельная задача
is_square

Добавьте Rectangle property is_square, возвращающую True, если width равна height.

Практика: класс Rectangle
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →