class PropSquare:
    def __init__(self, start):
        self.value = start

    def getX(self):                         # Przy pobraniu atrybutów
        return self.value ** 2

    def setX(self, value):                  # Przy przypisaniu atrybutów
        self.value = value

    X = property(getX, setX)                # Brak usuwania i dokumentacji

P = PropSquare(3)       # 2 instancje klasy z właściwością
Q = PropSquare(32)      # Każda ma inne informacje o stanie

print(P.X)              # 3 ** 2
P.X = 4
print(P.X)              # 4 ** 2
print(Q.X)              # 32 ** 2 (1024)

