본문 바로가기
IT관련/Python

[확고의 쓱~ 훑어보는 기록] Python - 연산자 오버로딩(__add__ / __radd__ / __sub__)

by 확고 2022. 8. 3.
728x90
반응형
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#-*- coding:utf-8
'''
Created on 2022. 4. 7.
 
@author: hwakgo
'''
 
class NumBox:
    def __init__(self,num):
        self.num = num
        self.num2 = num
        
    def __add__(self,num):#★ 왼쪽에 위치한 객체 잠조변수와 덧셈하려면 __add__ 함수가 자동으로 호출된다
        self.num += num
        return "더하기(__add__):" +str(self.num)
    
    def __radd__(self,num):#★ 오른쪽에 위치한 객체 잠조변수와 덧셈하려면 __add__ 함수가 자동으로 호출된다
        self.num += num
        return "더하기(__radd__):" + str(self.num)   
     
    def __sub__(self,num):#★ 왼쪽에 위치한 객체 잠조변수와 뺄셈하려면 __sub__ 함수가 자동으로 호출된다
        self.num -= num
        return "빼기(__sub__):" + str(self.num)
 
print(1+2)#▶3
print("ab"+"cd")#▶abcd
print("ab"+str(12))#▶ab12
print(int("12")+34)#▶46
 
#★ 숫자, 문자열 말고 객체와도 연결해서 콘솔 창에 출력 가능함
n1 = NumBox(10)#num, num2에 각각 10이 들어감
print(n1.num+20)#▶30
 
#왼쪽에 위치한 참조변수와 덧셈하려면 자동으로 __add__함수가 호출된다(연산자 오버로딩)
print(n1+20)#▶더하기(__add__):30
 
#오른쪽에 위치한 참조변수와 덧셈하려면 자동으로 __radd__함수가 호출된다(연산자 오버로딩)
print(30+n1)#▶더하기(__radd__):60
 
#왼쪽에 위치한 참조변수와 뺄셈하려면 자동으로 __sub__함수가 호출된다(연산자 오버로딩)
print(n1-7)#▶빼기(__sub__):53
cs

 

▼ (이전 게시물) [확고의 쓱~ 훑어보는 기록] Python - 상속 예제(2)

 

[확고의 쓱~ 훑어보는 기록] Python - 상속 예제(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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #-*- coding:utf-8 ''' Created on 2022. 8. 2. @author: hwakgo..

j-growthdiary.tistory.com

 

▼ (첫 번째 게시물) [확고의 쓱~ 훑어보는 기록] Python - 출력 예제 (print / str, int 함수 / 서식 문자 사용)

 

[확고의 쓱~ 훑어보는 기록] Python - 출력 예제 (print / str, int 함수 / 서식 문자 사용)

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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #-*- coding:utf-8 ''' Created on ..

j-growthdiary.tistory.com

728x90
반응형

댓글