본문 바로가기
Python

[Python 기초] 파이썬 - 연산자 오버로딩

by dev수니 2021. 4. 8.
반응형

 

 

연산자 오버로딩은 연산자객체(클래스)끼리 사용할 수 있게 하는 기법이다.

어떤 연산자와 함수의 동작을 똑같이 수행하는 메서드를 정의하여 사용한다.

__메서드명__(self, other)

 

other은 다른 객체를 뜻한다.

 

 

연산자 오버로딩에 사용할 수 있는 메서드는 다음과 같다.

 

출처 : https://blog.hexabrain.net/287

 

 

 

 


 

 

 1  객체와 객체의 연산

 

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
class op_over:
     def __init__(self,num):
          self.num = num
 
     def __add__(self,other):
          self.num += other.num
          return self.num
 
     def __sub__(self,other):
          self.num -= other.num
          return self.num
     
     def __mul__(self,other):
          self.num *= other.num
          return self.num
          
     def __mod__(self,other):
          self.num %= other.num
          return self.num
 
a1 = op_over(15)
b1 = op_over(5)
 
print(a1 + b1)
print(a1 - b1)
print(a1 * b1)
print(a1 % b1)
cs

인스턴스 a1와 b1을 만들고 각각의 수를 위와 같이 지정해주었다. 그리고 객체끼리 연산해주었다.

20
15
75
0
>>> 

 

 

 


 

 

 

 2  객체와 정수의 연산

 

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
class op_over:
     def __init__(self,num):
          self.num = num
 
     def __add__(self,other):
          self.num += other
          return self.num
 
     def __sub__(self,other):
          self.num -= other
          return self.num
     
     def __mul__(self,other):
          self.num *= other
          return self.num
          
     def __mod__(self,other):
          self.num %= other
          return self.num
 
a1 = op_over(15)
other = 5
 
print(a1 + other)
print(a1 - other)
print(a1 * other)
print(a1 % other)
cs
20
15
75
0

 

 

 

 

반응형

댓글