ਇੱਕ iterable ਕੋਈ ਵੀ ਚੀਜ਼ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਲੂਪ ਕਰ ਸਕਦੇ ਹੋ (ਇੱਕ ਸੂਚੀ, ਸਤਰ, dict); ਇੱਕ iterator ਓਹ ਵਸਤੂ ਹੈ ਜੋ ਅਸਲ ਦੀ ਪੁਨਰਾਵਰਤਤਾ ਕਰਦਾ ਹੈ, ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਮੁੱਲ ਪੈਦਾ ਕਰਦਾ ਹੈ ਅਤੇ ਆਪਣੀ ਸਥਿਤੀ ਨੂੰ ਟ੍ਰੈਕ ਕਰਦਾ ਹੈ। ਇਹ ਅੰਤਰ ਇਸ ਗੱਲ ਨੂੰ ਸਮਝਾਉਂਦਾ ਹੈ ਕਿ Python ਵਿੱਚ for ਲੂਪ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ।
ਦੋ ਪ੍ਰੋਟੋਕੋਲ
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
