-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathCircle_Class.py
More file actions
95 lines (51 loc) · 1.68 KB
/
Circle_Class.py
File metadata and controls
95 lines (51 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env python
import math
class Circle(object):
# radius = None
def __init__ (self,radius):
self.radius = float(radius)
self.diameter = float(radius*2)
# @property
# def radius(self):
# return int(self.radius)
# @radius.setter
# def radius(self,value):
# print('In radius setter')
# self.radius = int(value)
@property
def diameter(self):
return float(self.radius*2)
@diameter.setter
def diameter(self,value):
self.radius = float(value/2)
@property
def area(self):
return round((math.pi*(self.radius**2)),6)
@area.setter
def area(self,value):
# how to just return AttributeError? -- Step 4
print(AttributeError)
# from_diameter() missing 1 required positional argument 'Value' -- Step 5
@classmethod
def from_diameter(cls,value):
# cls.radius = int(value/2)
return cls(float(value/2))
def __str__(self):
return('Circle with radius: {}'.format(round(self.radius*2,6)))
def __repr__(self):
return 'Circle(diameter={})'.format(self.radius*2)
def __add__(self,other):
total = (self.diameter+other.diameter)/4
return Circle(total)
def __mul__(self,other):
mul = self.diameter/4*other
return Circle(mul)
def __rmul__(self,other):
rmul = self.diameter/4*other
return Circle(rmul)
def __eq__(self,other):
return self.diameter/4 == other.diameter/4
def __gt__(self,other):
return self.diameter/4 > other.diameter/4
def __lt__(self,other):
return self.diameter/4 < other.diameter/4