연산자 중복 정의
객체지향 (연산자 중복 정의 : Operation Overloading)
- 연산자 중복 정의 : 객체에서 필요한 연산자를 정의해두는 것
class Round_Bullet:
def __init__(self, speed, size):
self.speed = speed
self.size = size
def __add__(self, second):
return Round_Bullet(self.speed + second.speed, self.size + second.size)
Round_Bullet 클래스의 self.speed와 second.speed를 더한 값, self.size와 second.size를 더한 값을 리턴
bullet1 = Round_Bullet(4,7)
acceration1 = Bullet(8,7)
bullet2 = bullet1 + acceration1
bullet2.speed
bullet2.size
위와 같은 결과
def __mul__(self, n):
return Round_Bullet(self.speed * n, self.size * n)
self.speed에 n을 곱한 값, self.size에 n을 곱한 값을 리턴
def __getitem__(self, index):
if index == 0:
return self.speed
elif index == 1:
return self.size
index가 0이면 self.speed를, 1이면 self.size를 리턴
def __str__(self):
return "speed : {}, size : {}".format(self.speed, self.size)
speed : 0 size : 0과 같이 문자열로 변환한 것을 리턴