Geavanceerde Python-ontwikkelingscursus
Hoofdstuk 1
>
Niveau 3
Codeboek
Level 3: Gegevens naar een Generator sturen | ## Generatoren Een generator in Python is een speciale soort functie die waarden kan teruggeven ("yield") in plaats van ze alleen maar terug te geven. Ze worden meestal gebruikt om efficient over grote datasets of eindeloze reeksen te lopen zonder al het geheugen te belasten. ### Hoe een generator te maken Gebruik het sleutelwoord `yield` in plaats van `return` om een generator-functie te maken: ```python # Een eenvoudige generator def eenvoudige_generator(): yield 1 yield 2 yield 3 ``` In plaats van alle waarden tegelijk te retourneren, geeft deze generator ze één voor één: ```python # Gebruik de generator for waarde in eenvoudige_generator(): print(waarde) ``` Dit zal de uitgang geven: ``` 1 2 3 ``` ### Voordelen van Generators 1. **Lage geheugendruk**: Generators laden niet alle waardes in het geheugen tegelijk. 2. **Lui laden (Lazy Evaluation)**: Ze berekenen de waardes alleen wanneer dat nodig is. 3. **Meer leesbare code**: Helpt de code kort en overzichtelijk te houden door de ingewikkelde iteratie logica uit de loops te houden. ### Generator Expressions Generator expressies zijn vergelijkbaar met list comprehensions, maar gebruiken ronde haken in plaats van vierkante haken. ```python # Een generator expressie generator = (x * x for x in range(10)) for waarde in generator: print(waarde) ``` Dit zal alle kwadraten van 0 tot 9 printen, zonder ze allemaal tegelijk in het geheugen te hebben.