An iterable adalah apa saja yang boleh anda gelung (senarai, rentetan, dict); an iterator adalah objek yang melakukan lelaran sebenar, menghasilkan nilai satu demi satu dan menjejaki kedudukannya. Perbezaan ini mendasari cara for loops berfungsi dalam Python.
Dua protokol
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
