पाठ 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