एक iterable कुछ भी है जिसे आप loop कर सकते हैं (एक सूची, स्ट्रिंग, dict); एक iterator वह वस्तु है जो वास्तविक पुनरावृत्ति करती है, एक बार में मानों का उत्पादन करती है और अपनी स्थिति को ट्रैक करती है। यह अंतर Python में for loops कैसे काम करते हैं, इसका आधार है।
दो प्रोटोकॉल
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
