1. 스페셜 메서드

파이썬의 스페셜 메서드 (또는 매직 메서드라고도 불림)는 더블 언더스코어(__)로 시작하고 끝나는 메서드 이름을 갖습니다. 이 메서드들은 특정 구문이나 내장 함수를 사용할 때 파이썬 인터프리터에 의해 자동으로 호출됩니다.

예를 들어, 객체에 대해 + 연산자를 사용하면 해당 객체의 __add__ 메서드가 호출됩니다. 또는 len() 함수를 사용하면 __len__ 메서드가 호출됩니다.

 

 

1. __init__ : 객체 초기화 메서드

2. __str__ : 객체를 문자열로 표현하는 메서드. print() 함수나 str() 함수를 사용할  호출됩니다.

class Book:
    def __init__(self, title):
        self.title = title

book = Book('파이썬')
print(book)
print(str(book))
더보기
<__main__.Book object at 0x7b6b4b2ecc10>
<__main__.Book object at 0x7b6b4b2ecc10>

 

class Book:
    def __init__(self, title):
        self.title = title

    def __str__(self):
        return self.title
        
book = Book('파이썬')
print(book)
print(str(book))
더보기
파이썬
파이썬

 

 

3. __add__ : + 연산자를 사용할  호출되는 메서드

class Calc:
    def __init__(self, value):
        self.value = value

    def __add__(self, other): # other : 다른객체
        return self.value + other.value

num1 = Calc(5)
num2 = Calc(10)
result = num1 + num2
print(result)
# 덧셈 오버라이딩

 

4. __len__ : len() 함수를 사용할  호출되는 메서드

class Queue:
    def __init__(self):
        self.items = [1, 2, 3, 4, 5]

    def __len__(self):
        return len(self.items) #len()
        
        
queue = Queue()
print(len(queue))

 

 

5. __getitem__ : 인덱싱을 사용할  호출되는 메서드

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __getitem__(self, index):
        if index == 0:
            return self.x
        elif index == 1:
            return self.y
        else:
            return -1

p1 = Point(3, 4)
print(p1[0], p1[1], p1[100])
더보기
3 4 -1

 

6. __call__ : 객체를 함수처럼 호출할  사용되는 메서드

class CallableObject:
    def __call__(self, *args, **kwargs):
        print(f"Called with arguments: {args} and keyword arguments: {kwargs}")

callable_obj = CallableObject()
callable_obj(1, 2, 3, a="A", b="B")
더보기
Called with arguments: (1, 2, 3) and keyword arguments: {'a': 'A', 'b': 'B'}

'컴퓨터 비전 > 파이썬 기초' 카테고리의 다른 글

19. 파이썬 모듈  (0) 2023.12.13
18. 파이썬 예외처리  (0) 2023.12.12
16. 파이썬 상속  (0) 2023.12.12
15. 객체지향과 클래스  (1) 2023.12.11
14. 콜백함수와 람다함수  (1) 2023.12.11