iterable એ કંઈ પણ છે જે તમે લૂપ કરી શકો છો (એક યાદી, સ્ટ્રિંગ, dict); iterator એ ઓબ્જેક્ટ છે જે વાસ્તવિક પુનરાવર્તન કરે છે, એક સમયે મૂલ્યો ઉત્પન્ન કરે છે અને તેની સ્થિતિ ટ્રેક કરે છે. આ તફાવત Python માં for લૂપ્સ કેવી રીતે કામ કરે છે તેના આધારે છે.
બે પ્રોટોકોલ
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
