Een generator in Python is een soort functie waarmee je een reeks waarden kunt genereren. In plaats van alle waarden tegelijk te genereren en in het geheugen op te slaan (zoals bijvoorbeeld een lijst zou doen), genereert een generator elke waarde op het moment dat deze nodig is. Dit kan erg efficiënt zijn voor het werken met grote hoeveelheden data, omdat het geheugen wordt bespaard.
Generators worden gedefinieerd met behulp van de “yield” instructie in plaats van “return”. Wanneer de generator wordt aangeroepen, gaat deze verder vanaf waar hij de laatste keer was gestopt (hij ‘onthoudt’ zijn vorige toestand).
Hier is een voorbeeld van een eenvoudige generator die de getallen van 1 tot n genereert:
```
def simple_generator(n):
i = 1
while i <= n:
yield i
i += 1
```
Je kunt deze generator gebruiken met een speciale for-lus (die in Python een iterator is), zoals dit:
```
for number in simple_generator(5):
print(number)
```
De output zou zijn:
```
1
2
3
4
5
```