/ OOP

연산자 중복 정의


객체지향 (연산자 중복 정의 : 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과 같이 문자열로 변환한 것을 리턴

-->