[python] iter( ), __iter__, iterable, iterator

FreeZeeSun·2023년 9월 11일
0

python

목록 보기
5/5
post-thumbnail

iter( )

옛날 옛적, 가난한 농부들이 사는 거위 마을이 있었다.

어느 날,전지전능한 아키텍쳐는 거위 한마리를 집어들어 임의의 거위 한마리를 집어들어 '황금알을 낳는 거위'로 정했다.

이렇게, 황금알을 낳는 거위를 지정하는 함수가 iter() 이다.
하지만! 아무 거위나 황금알을 낳을 수는 없다.

iterable

다양한 거위 중, 특이한 이름을 가진 농부(iterable)의 거위만이 황금알을 낳는 거위가 될 자격이 되었다.
그 농부의 이름은 매우 길었는데...

줄리어스 오펜하이머 하이브리드 __iter__ 였다.

iterator : 황금알 낳는 거위


하나씩 알을 낳는 거위는 농부의 이름을 따서 iterator 라고 지어주었다.
황금알을 낳는 거위는 알을 하나씩 낳는다.

__next__() : 알 낳기

이 때, 알을 낳는 행위 __next__() 가 있어야한다. 그래야, 매번 알을 하나씩 낳을 수 있다.

StopIteration : 황금알 더이상 없음


알을 하나씩 낳던 거위가 더 이상 낳을 알이 없을 때, __next()__StopIteration 이라는 예외를 발생한다.

-- 끝 --

iterator 는 함수형 프로그래밍에서 매우 중요한 특성이다.
하지만 헷갈린다.

profile
개발자 지망생. 지금은 삽질의 연속, 하지만 언젠가는 삽질이 아닐 것이기에!

0개의 댓글