반응형
연산자 오버로딩은 연산자를 객체(클래스)끼리 사용할 수 있게 하는 기법이다.
어떤 연산자와 함수의 동작을 똑같이 수행하는 메서드를 정의하여 사용한다.
__메서드명__(self, other)
other은 다른 객체를 뜻한다.
연산자 오버로딩에 사용할 수 있는 메서드는 다음과 같다.
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
반응형
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 if __name__ == "__main__" 란? (0) | 2021.04.08 |
---|---|
[Python 기초] 파이썬 - 쓰레드 (Thread) (0) | 2021.04.08 |
[Python 기초] 파이썬 자료형 - 집합(set) (0) | 2021.04.08 |
[Python 기초] 파이썬 random 모듈 - choice() , randint() , randrange() , sample() , shuffle() (0) | 2021.04.07 |
[Python 기초] 파이썬 클래스 - 클래스 멤버(static) 와 접근제어자(public , private , getter , setter) (0) | 2021.04.05 |
댓글