-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path102-square.py
executable file
·130 lines (102 loc) · 3.06 KB
/
102-square.py
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/python3
"""1-square module"""
class Square():
"""Square class
"""
def __init__(self, size=0):
"""Initialze Variables
Keyword Arguments:
size -- size of the square (default: {0})
Raises:
TypeError: size must be an integer
ValueError: size bust be >= 0
"""
if not isinstance(size, int):
raise TypeError("size must be an integer")
elif size < 0:
raise ValueError("size must be >= 0")
self.__size = size
def area(self):
"""Calculate the area of the square
Returns:
Area of the square
"""
return self.__size * self.__size
@property
def size(self):
"""size getter
Returns:
Size of the square
"""
return self.__size
@size.setter
def size(self, value):
"""size setter
Arguments:
value -- new size
"""
if not isinstance(value, int):
raise TypeError("size must be an integer")
elif value < 0:
raise ValueError("size must be >= 0")
self.__size = value
def __eq__(self, other):
"""Compare objects
Arguments:
other -- the other object
Returns:
True if self object area == the other object area
"""
if not isinstance(other, Square):
return NotImplemented
return self.area() == other.area()
def __lt__(self, other):
"""Compare objects
Arguments:
other -- the other object
Returns:
True if self object area < the other object area
"""
if not isinstance(other, Square):
return NotImplemented
return self.area() < other.area()
def __le__(self, other):
"""Compare objects
Arguments:
other -- the other object
Returns:
True if self object area <= the other object area
"""
if not isinstance(other, Square):
return NotImplemented
return self.area() <= other.area()
def __ne__(self, other):
"""Compare objects
Arguments:
other -- the other object
Returns:
True if self object area != the other object area
"""
if not isinstance(other, Square):
return NotImplemented
return self.area() != other.area()
def __gt__(self, other):
"""Compare objects
Arguments:
other -- the other object
Returns:
True if self object area > the other object area
"""
if not isinstance(other, Square):
return NotImplemented
return self.area() > other.area()
def __ge__(self, other):
"""Compare objects
Arguments:
other -- the other object
Returns:
True if self object area >= the other object area
"""
if not isinstance(other, Square):
return NotImplemented
return self.area() >= other.area()