class Square(object):
    def __init__(self, side, colour="black"):
        self.side = side
        self.colour = colour
        
    @property
    def area(self):
        return self.side ** 2
    
    @area.setter
    def area(self, value):
        self.side = value ** 0.5
    
    @property
    def perimeter(self):
        return self.side * 4
    
    @perimeter.setter
    def perimeter(self, value):
        self.side = value / 4.0
    
    def __repr__(self):
        return "%s square with the side: %.2f, area: %.2f, perimeter: %.2f" % (
            self.colour.title(), self.side, self.area, self.perimeter)
            
square = Square(8)
print(square)

square.side = 40
print(square)

square.colour = "yellow"
square.area = 89
print(square)

square.perimeter = 134.6
print(square)