पाठ 34 / 47

इटरेटर प्रोटोकॉल

जब `for` लूप "अगला क्या है?" पूछता है तो असल में क्या होता है।

Iterable बनाम iterator

iterable में __iter__ होता है (iterator लौटाता है)। iterator में __next__ होता है (अगला मान लौटाता है, या StopIteration उठाता है)।

इटरेटर को मैन्युअल चलाना

for x in seq: असल में यह है: iterator लो, बार-बार next() कॉल करो, StopIteration पर रुको। आप इसे मैन्युअल रूप से भी चला सकते हैं।

nums = [10, 20, 30]
it = iter(nums)
print(next(it))   # 10
print(next(it))   # 20
print(next(it))   # 30
# next(it)        # StopIteration