파이썬의 리스트와 튜플에서 동작하는 슬라이싱은 객체의 getitem 이 정의된 함수에 의해서 수행된다. 이러한 함수는 예약함수로써 선언시 컴파일의 단에서 이를 참조해 js의 prototype과 같이 속성을 부여한다.
class UseGetItem:
def __init__(self):
self.items = [n for n in range(1, 11)]
def __getitem__(self, idx):
return self.items[idx]
a = CustomNumbers()
a[2:7]
# [3, 4, 5, 6, 7]
이런식으로 객체가 포함하는 것에 대해서 마치 배열처럼 사용 가능하게 만드는 함수이다.
@torch.jit.export
def __getitem__(self, token: str) -> int:
이런식으로 문자열로 구현하는 것도 가능하다