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)
# 덧셈 오버라이딩
더보기
15
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
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 |