클래스 연산자 재정의 이해 및 사용
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, pt):
new_x = self.x + pt.x
new_y = self.y + pt.y
return Point(new_x, new_y)
def __sub__(self, pt):
new_x = self.x - pt.x
new_y = self.y - pt.y
return Point(new_x, new_y)
def __mul__(self, factor):
return Point(self.x * factor, self.y * factor)
def __len__(self):
return self.x ** 2 + self.y ** 2
def __getitem__(self, index):
if index == 0:
return self.x
elif index == 1:
return self.y
else:
return -1
def __str__(self):
return '({}, {})'.format(self.x, self.y)
p1 = Point(3, 4)
p2 = Point(2, 7)
p3 = p1 + p2
p4 = p1 - p2
p5 = p1 * 3
print(p1)
print(p2)
print(p3)
print(p4)
print(p5)
print(len(p1))
print(p1[0])
print(p1[1])
클래스 연습문제 풀이
연습문제)
- 복소수 클래스를 정의 해봅시다.
- 덧셈, 뺄셈, 곱셈 연산자 지원
- 길이 (복소수의 크기) 지원
- 복소수 출력 '1 + 4j'와 같이 표현
- 비교 연산 ==, != 지원
- =, <=, <, > 연산 지원
- 절대값 지원