1. 스페셜 메소드
파이썬의 스페셜 메서드 (또는 매직 메서드라고도 불림)는 더블 언더스코어(__)로 시작하고 끝나는 메서드 이름을 갖습니다. 이 메서드들은 특정 구문이나 내장 함수를 사용할 때 파이썬 인터프리터에 의해 자동으로 호출됩니다.
예를 들어, 객체에 대해 + 연산자를 사용하면 해당 객체의 __add__ 메서드가 호출됩니다. 클래스에서 사용했던 __init__메소드도 객체를 초기화해주는 스페셜 메소드 입니다.
- __str__ : 객체를 문자열로 표현하는 메서드. print() 함수나 str() 함수를 사용할 때 호출
book = Book('미친듯이 재밌는 파이썬')
print(book)
print(str(book))
# str메소드를 오버라이드 하기
class Book:
def __init__(self,title):
self.title = title
def __str__(self):
return self.title
book = Book('미친듯이 재밌는 파이썬')
print(book) >> 미친듯이 재밌는 파이썬
- __add__ : + 연산자를 사용할 때 호출되는 메서드
# add메소드를 오버라이드 하기
class Calc:
def __init__(self, value):
self.value = value
def __add__(self, other):
return self.value + other.value
result = num1 + num2
print(result) >> 15
- __len__ : len() 함수를 사용할 때 호출되는 메서드
# len메소드를 오버라이드 하기
class Queue:
def __init__(self, *args):
self.items = list(args)
def __len__(self):
return len(self.items)
queue = Queue(1,2,3,4,5,9)
print(len(queue)) >> 6
- __getitem__ : 인덱싱을 사용할 때 호출되는 메서드
# 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]) >> 3
print(p1[1]) >> 4
print(p1[2]) >> -1
- __call__ : 객체를 함수처럼 호출할 때 사용되는 메서드
# 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,4,10, userid = 'apple', age = 20)
>> Called with arguments:(1, 2, 3, 4, 10)and keyword arguments:{'userid': 'apple', 'age': 20}
'파이썬' 카테고리의 다른 글
Streamlit/GPT API 이용해보기 (0) | 2023.11.22 |
---|---|
파이썬 예외처리 (0) | 2023.09.17 |
파일 입출력 라이브러리2 (0) | 2023.09.14 |
파일 입출력 라이브러리 (0) | 2023.09.14 |
super()메소드와 다중상속 (0) | 2023.09.13 |