40 lines
911 B
Python
40 lines
911 B
Python
from math import pi
|
|
|
|
|
|
class Circle:
|
|
# Missing docstring
|
|
def __init__(self, radius=1):
|
|
self.radius = radius
|
|
|
|
def __repr__(self):
|
|
return f"Circle({self.radius})"
|
|
|
|
@property
|
|
def radius(self):
|
|
return self._radius
|
|
|
|
@radius.setter
|
|
def radius(self, radius):
|
|
if radius < 0:
|
|
raise ValueError("Radius cannot be negative")
|
|
self._radius = radius
|
|
|
|
@property
|
|
def diameter(self):
|
|
return 2 * self.radius
|
|
|
|
@diameter.setter
|
|
def diameter(self, diameter):
|
|
if diameter < 0:
|
|
raise ValueError("Diameter cannot be negative")
|
|
self.radius = diameter / 2
|
|
|
|
@property
|
|
def area(self):
|
|
return pi * self.radius ** 2
|
|
|
|
@area.setter
|
|
def area(self, area):
|
|
# Not required: property without setter will raise AttributeError when set
|
|
raise AttributeError("Can't set attribute")
|