import math class Circle: def __init__(self, radius): self._radius = radius self._area = None @property def radius(self): return self._radius @radius.setter def radius(self, value): if value < 0: raise ValueError('Radius must be positive') if value != self._radius: self._radius = value self._area = None @property def area(self): if self._area is None: self._area = math.pi * self.radius ** 2 return self._area Code language: Python (python)