Praktiske Anvendelser av Generatorer: Virkelige Brukstilfeller
Sveip for å vise menyen
Generatorer kan brukes som lette kontekstbehandlere for å håndtere ressurser effektivt, slik som databasetilkoblinger, filoperasjoner eller låsemekanismer. Med contextlib-modulen kan generatorer håndtere ressursallokering og opprydding sømløst.
1234567891011121314from 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}")
Effektiv behandling av store datamengder
Generatorer er ideelle for å bygge datapipelines som behandler store datasett på en lat måte. Hvert steg i pipelinen kan implementeres som en generator, noe som muliggjør effektiv og minnevennlig behandling.
12345678910111213141516171819202122232425262728293031323334353637383940import 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)
1. Hva skjer når en generatorfunksjon går tom for verdier å yield?
2. Hva vil følgende kode skrive ut?
3. Hva gjør følgende kode?
Alt var klart?
Takk for tilbakemeldingene dine!
Seksjon 6. Kapittel 5
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Seksjon 6. Kapittel 5