special method
- __로 시작, __로 끝나는 특수 함수
- 해당 메서드들을 구현하면 커스템 객체에 여러가지 파이썬 내장 함수나 연산자를 적용 가능
- 오버라이딩 가능한 함수 목록은 아래 링크에서 참조
https://docs.python.org/3/reference/datamodel.html
https://docs.python.org/3/reference/datamodel.html#object.__add__
# Point
# 2차원 좌표평면 각 점 (x,y)
# 연산
# 두 점의 덧셈, 뺄셈 (1, 2) + (3, 4) = (4, 6)
# 한 점과 숫자의 곱셈 (1, 2) * 3 = (3, 6)
# 그 점의 길이 (0, 0) 부터의 거리
# x, y 값 가져오기
# 출력하기
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 get_x(self):
return self.x
def get_y(self):
return self.y
def __len__(self):
return self.x ** 2 + self.y ** 2
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(len(p1))
print(p1.get_x())
print(p1.get_y())
print(p1)
print(p2)
print(p3)
print(p4)
print(p5)
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #딥러닝강의
반응형