Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Praktische Toepassingen van Generators: Voorbeelden uit de Praktijk | Beheersing van Iterators en Generators in Python
Python Structureel Programmeren

bookPraktische Toepassingen van Generators: Voorbeelden uit de Praktijk

Generators kunnen worden gebruikt als lichtgewicht contextmanagers om middelen efficiënt te beheren, zoals databasetoegang, bestandshandelingen of vergrendelingsmechanismen. Met de module contextlib kunnen generators het toewijzen en vrijgeven van middelen naadloos afhandelen.

1234567891011121314
from contextlib import contextmanager @contextmanager def database_connection(): print("Opening database connection") connection = "Database Connection" # Simulated connection try: yield connection finally: print("Closing database connection") # Using the generator as a context manager with database_connection() as conn: print(f"Using {conn}")
copy

Grote hoeveelheden data efficiënt verwerken

Generators zijn ideaal voor het bouwen van datapijplijnen die grote datasets lui verwerken. Elke fase van de pijplijn kan als generator worden geïmplementeerd, wat efficiënte en geheugenbesparende verwerking mogelijk maakt.

12345678910111213141516171819202122232425262728293031323334353637383940
import re # Stage 1: Read lines lazily def read_lines(text): for line in text.split("\n"): yield line # Stage 2: Filter non-empty lines def filter_lines(lines): for line in lines: if line.strip(): yield line # Stage 3: Extract words lazily def extract_words(lines): for line in lines: for word in re.findall(r'\w+', line): yield word # Stage 4: Transform words to lowercase def lowercase_words(words): for word in words: yield word.lower() # Input text text = """Generators are powerful tools They allow efficient data processing This pipeline demonstrates their usage""" # Build the pipeline lines = read_lines(text) filtered = filter_lines(lines) words = extract_words(filtered) lowercased = lowercase_words(words) # Process the data print("Processed words:") for word in lowercased: print(word)
copy

1. Wat gebeurt er wanneer een generatorfunctie geen waarden meer heeft om te yield?

2. Wat zal de volgende code als uitvoer geven?

3. Wat doet de volgende code?

question mark

Wat gebeurt er wanneer een generatorfunctie geen waarden meer heeft om te yield?

Select the correct answer

question mark

Wat zal de volgende code als uitvoer geven?

Select the correct answer

question mark

Wat doet de volgende code?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain how the @contextmanager decorator works in more detail?

What are some real-world scenarios where generator-based context managers are especially useful?

How does using generators in data pipelines improve memory efficiency?

bookPraktische Toepassingen van Generators: Voorbeelden uit de Praktijk

Veeg om het menu te tonen

Generators kunnen worden gebruikt als lichtgewicht contextmanagers om middelen efficiënt te beheren, zoals databasetoegang, bestandshandelingen of vergrendelingsmechanismen. Met de module contextlib kunnen generators het toewijzen en vrijgeven van middelen naadloos afhandelen.

1234567891011121314
from contextlib import contextmanager @contextmanager def database_connection(): print("Opening database connection") connection = "Database Connection" # Simulated connection try: yield connection finally: print("Closing database connection") # Using the generator as a context manager with database_connection() as conn: print(f"Using {conn}")
copy

Grote hoeveelheden data efficiënt verwerken

Generators zijn ideaal voor het bouwen van datapijplijnen die grote datasets lui verwerken. Elke fase van de pijplijn kan als generator worden geïmplementeerd, wat efficiënte en geheugenbesparende verwerking mogelijk maakt.

12345678910111213141516171819202122232425262728293031323334353637383940
import re # Stage 1: Read lines lazily def read_lines(text): for line in text.split("\n"): yield line # Stage 2: Filter non-empty lines def filter_lines(lines): for line in lines: if line.strip(): yield line # Stage 3: Extract words lazily def extract_words(lines): for line in lines: for word in re.findall(r'\w+', line): yield word # Stage 4: Transform words to lowercase def lowercase_words(words): for word in words: yield word.lower() # Input text text = """Generators are powerful tools They allow efficient data processing This pipeline demonstrates their usage""" # Build the pipeline lines = read_lines(text) filtered = filter_lines(lines) words = extract_words(filtered) lowercased = lowercase_words(words) # Process the data print("Processed words:") for word in lowercased: print(word)
copy

1. Wat gebeurt er wanneer een generatorfunctie geen waarden meer heeft om te yield?

2. Wat zal de volgende code als uitvoer geven?

3. Wat doet de volgende code?

question mark

Wat gebeurt er wanneer een generatorfunctie geen waarden meer heeft om te yield?

Select the correct answer

question mark

Wat zal de volgende code als uitvoer geven?

Select the correct answer

question mark

Wat doet de volgende code?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 5
some-alt