iterator
- interatro == 반복자
- 값을 차례대로 꺼낼 수 있는 객체
- 파이썬에서는 이터레이터만 생성하고 필요한 시점이 되었을 때 값을 만드는 반식! (메모리를 많이 사용하지 않아 성능에 굿!)
- 즉, 데이터 생성을 뒤로 미루는 것 => 지연 평가(lazy evaluation)
__iter__와 __next__
- "__iter__"와 "__next__"를 가진 객체를 "이터레이터 프로토콜"을 지원한다고 말한다
헛갈리는 내용 주의
- iterable (반복가능한 객체) => 요소를 한 번에 하나씩 가져올 수 있는 객체
- iterator (반복자) => "__next__" 메소드를 사용해서 차례대로 값을 꺼낼 수 있는 객체
- 즉!!! interator는 반복 가능한 객체에서 "__iter__" 메소드로 이터레이터를 얻음!
__getitem__
- "__getitem__"만 구현해도 이터레이터가 됨!
- "__getitem__"만 구현하면, "__iter__"와 "__next__"필요 없이 이터레이터가 될 수 있음!
느낀 점
- 실무에서 구체적으로 어떤 부분에 적용할 수 있을 지 아직은 아리송송
Reference