파이썬의 특수 메서드(매직 메서드)
__len__()객체의 길이를 반환하는 메서드
len(obj)를 호출하면 내부적으로 obj.__len__()가 실행됨
class MyList:
def __init__(self, data):
self.data = data
def __len__(self):
return len(self.data) # 리스트 길이 반환
my_list = MyList([1, 2, 3, 4])
print(len(my_list)) # 4
__contains__()in 연산자가 호출될 때 실행됨
x in obj → 내부적으로 obj.__contains__(x)가 실행됨
class MyList:
def __init__(self, data):
self.data = data
def __contains__(self, item):
return item in self.data # 포함 여부 반환
my_list = MyList([1, 2, 3, 4])
print(3 in my_list) # True
print(5 in my_list) # False