__getitem__

2021. 5. 21. 16:38Python

728x90

리스트처럼 클래스의 인스턴스 자체도 슬라이싱을 할 수 있도록 만들 때 필요한 속성이 __getitem__이라는 속성

 

<예제 코드>

1. 직접 인스턴스에 접근해 슬라이싱

class CustomNumbers:
  def __init__(self):
    self._numbers = [n for n in range(1, 11)]

a = CustomNumbers()
a._numbers[2:5] # [3, 4, 5]

2. getitem 특별 메소드로 인스턴스 변수에 접근하지 않고 객체 자체를 통해 슬라이싱을 구현

__getitem__함수는 인덱스를 인수로 받아야 한다.

class CustomNumbers:
  def __init__(self):
    self._numbers = [n for n in range(1, 11)]

  def __getitem__(self, idx):
    return self._numbers[idx]

a = CustomNumbers()
a[2:7]
# [3, 4, 5, 6, 7]
728x90

'Python' 카테고리의 다른 글

hasattr(object, name) / getattr(object, name) / setattr(object, name)  (0) 2021.06.15
class 이름/ class 변수 참조  (0) 2021.06.15
Python argparse  (0) 2021.05.09
2차원 List 뒤집기  (0) 2021.05.01
정규 표현식  (0) 2021.04.29