Rozdział 14 · Tworzenie rzeczywistych obiektów

Mini-projekt: Rectangle

Zweryfikowane wymiary i obliczony obszar obwodu są property w prawdziwej klasie.

Mini-projekt: Rectangle

Klasa Prostokąta z potwierdzonymi wymiarami i obliczoną powierzchnią/obwodem:

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(„szerokość musi być dodatnia”)
        self._width = value

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

    @height.setter
    def height(self, value):
        if value <= 0:
            raise ValueError(„wysokość musi być dodatnia”)
        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 — wszystkie cztery dostępne jako atrybuty, ale dwa z nich sprawdzają wartość, dwa są obliczane
ispolzovanie.py
r = Rectangle(10, 4)
print(r.area, r.perimeter)   # 40 28
r.width = 6
print(r.area)                 #24 — przeliczone samodzielnie
r.width = -1                  # ValueError
★★ Zadanie samodzielne
is_square

Dodaj Rectangle property is_square, który zwraca True, jeśli width jest height.

Praktyka: Klasa Rectangle
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →