저번에 Python's Magic Method 에 대해서 잠깐 이야기 했었다. __init__, __len__, __iter__ 이렇게 세가지 매직 메소드가 어떤 동작을 하는지 알아보았고 예제 코드를 확인했었다.
이번에는 __getitem__, __setitem__ 이 두가지를 추가로 살펴보겠다. 저번에 매직 메소드에 대해 어느정도 이해를 했으니 이번에는 바로 예시 코드를 보고 설명을 해도 쉽게 이해할 수 있을 것이다.
class myList():
def __init__(self):
self.list = [1, 2, 3, 4, 5]
def __getitem__(self, key):
return self.list[key]
def __setitem__(self, key, value):
self.list[key] = value
먼저 __getitem__은 self[key]를 통해 값에 접근하려고 할 때 사용하는 메소드이다.
리스트에서 인덱스로 값을 가져오는 것과 똑같은 행동을 정의해주는 것이다.
__setitme__은 self[key] = 10과 같이 key를 통해 값을 초기화 하려고 할 때 사용하는 메소드이다.
리스트에서 인덱스로 값에 접근해 초기화해주는 것과 똑같은 행동을 정의해준다.
저번에 이미 매직 메소드에 대해서 다뤘기 때문에 __getitem__과 __setitem__이 어떤 동작을 하는지만 설명해도 쉽게 이해를 하고 어떻게 활용할 수 있을지 금방 떠올릴 수 있을 것이니 이번 설명은 간단하게 마치도록 하겠다.