Декоратор который позволяет превратить метод в свойство, чтобы предоставить управляемым атрибутам возможность и для чтения, и для записи.

class Square:
    def __init__(self, side):
        self.side = side

    @property
    def side(self):
        return self._side

    @side.setter
    def side(self, value):
        self._side = float(value)

    @property
    def area(self):
        return self.side ** 2

    @area.setter
    def area(self, value):
        self.side = value ** 0.5