Het iteratieprotocol in Python is een manier om sequentiële gegevens, zoals lijsten, te doorlopen. Het bestaat uit twee fundamentele methoden: `__iter__()` en `__next__()`.
- `__iter__()` : Deze methode retourneert het iterator object zelf. Als de klasse volgens het iteratieprotocol is gedefinieerd, dan wordt het verplicht om deze methode te implementeren.
- `__next__()` : Deze methode retourneert het volgende item van het object. Als er geen volgend item meer is, wordt een StopIteration uitzondering gegenereerd.
Een object wordt iterable als het deze twee methoden implementeert en we kunnen het in een for loop gebruiken.
Hieronder vind je een voorbeeld van hoe je het iteratieprotocol kunt implementeren in een klasse in Python:
```
class MyNumbers:
def __iter__(self):
self.a = 1
return self
myclass = MyNumbers()
myiter = iter(myclass)
for x in myiter:
print(x)
```
In dit voorbeeld zal de for-loop achtereenvolgens getallen afdrukken van 1 t/m 20. Als het nummer groter is dan 20, wordt een StopIteration uitzondering gegenereerd en stopt de loop.