Bruk av Python Yield

Ifølge Tiobe Språk Index, er Python en av de mest populære programmeringsspråk i verden. Python er et høyere nivå språk som støtter funksjoner som interaktiv utvikling og minnehåndtering. Programmerere kan kjøre kode som det er skrevet, og trenger ikke å håndtere lavnivå minne detaljer som ofte plager programmerere i andre språk. Dette gir Python programmerere muligheten for raskere utvikling på bekostning av noe tregere programmer. Python Yield nøkkelordet brukes til å lage spesielle typer objekter som kalles generatorer.

køyring

Iterasjon er en hjørnestein i effektiv programmering. Iterasjon er det som gjør at datamaskiner til å utføre repetitive oppgaver om igjen og om igjen til å møte en exit tilstand. Noen ganger referert til som "looping" gjentakelse kan finnes i alle dataprogrammeringsspråk. Iterasjon er ofte utført over noen form for datastruktur, utføre en handling på hvert element. I Python, gjøres dette slik:

list = [1, 2, 3, 4, 5]

for ei liste:

print e

Denne koden vil skrive ut hvert nummer i listen i kommandolinjen.

Iterables

Python Iterables er en spesiell type objekt som kan iterated ved hjelp av den innebygde Python syntaks. Iterables kan brukes med Pythons "for" køyring syntaks, noe som gjør dem svært praktisk. Iterables er avgjørende for forståelsen Yield. Typiske Iterable objekter omfatter de fleste av Python datatyper. Programmerere kan definere sine egne Iterable stedene også.

generatorer

Pythons Generatorer er svært lik Iterables. Men i motsetning til Iterable objekter, generatorer kan bare brukes en gang. I stedet for å lagre alle verdiene, Pythons generatorer genererer alle verdiene i generatoren på fly. Når Generator har blitt brukt, opphører det å gi verdier og er "død". En ny generator må opprettes. Generatorer er svært minneeffektiv, siden de ikke lagrer noen verdier.

Avkastning

Utbytte brukes til å lage generatorer. Når Python møter en avkastning uttalelse, skaper det en generator og faktisk ikke utføre koden til generatoren objekt kalles. Yield er vanligvis brukt slik:

def createGenerator ():

mylist = range(3)

for jeg i myList:

Utbyttet i * jeg

Denne generatoren gir verdiene (1, 4, 9) til den anropende sløyfe.