Глава 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)
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, без установки