Python의 빌트인 class들의 관계
파이썬의 iterable, iterator , generator, container의 관계를 설명할 때 많이 사용하는 그림이다. 나는 여기에 몇 가지를 좀 더 추가했다. generator는 iterator의 일종이나, 특별한 iterator라고 볼 수 있다. 게으른 factory와 같이 값을 미리 보유하고 있는 것이 아니라 필요에 따라 생성한다. python에서 제공하는 list, dict, ...등과 같은 객체들은, 선언과 동시에 안에 무엇을 담을지 결정하여 초기화시킬 수 있다. 그 코드에서 list, dict와 같은 객체들은 1,2,3,4와 같은 정수 배열을 담거나 key-value를 담은 container를 생성한다. python에서 제공하는 container 객체들 그리고 대부분의 container 객체들은 iterable, 순회할 수 있지만, 프로그래머 스스로 순회할 수 없는 container class를 구현할 수도 있다. int, float, double과 같은 자료형은 literal이며 container가 아니고, 순회할 수도 없다.