Welkom terug, ik wil dat we begrijpen hoe de dingen onder de motorkap werken, dus
ik ga je twee voorbeelden laten zien van het implementeren van onze eigen voor Loop en vervolgens het implementeren van onze eigen bereikfunctie.
Dus de eerste is onze for-lus.
Dus ik ga zeggen speciaal voor lus.
Onder de motorkap ontvangt het alleen iterable, en dan gaan we Iterator zeggen.
Gaat nu gelijk zijn aan een iterabel voor ons om een iterabel te hebben, we hebben wat we een ED-functie noemen.
Dat accepteert de iterabele die we zojuist hebben doorstaan.
Deze innerlijke functie stelt ons in staat om de volgende functie op deze iterable te gebruiken, dus blijf bij me.
Ik ga zeggen terwijl het waar is.
Ik wil.
Poging.
En in dit tri-blok zal Iterator zeggen.
En we kunnen hier, laten we zeggen, een soort bewerking uitvoeren als we willen, of we kunnen gewoon de volgende iterator bellen.
Weet je, laten we hier iets afdrukken, zodat we kunnen zien wat de iterator is.
En tot slot wil ik dat we stoppen wanneer we de uitzondering voor stopiteratie hebben.
Weet je nog degene die we zagen waar er geen items meer in de iterable zijn?
En hier kunnen we gewoon breken.
En zorg ervoor dat.
Ik heb de Colin correct ingesteld, dus als ik nu speciaal voor Loop doe en het een lijst van een, twee, drie geef en ik klik
op uitvoeren.
Bekijken.
Ik loop door een aantal itereerbare objecten met behulp van next.
En je ziet dat dit object in dezelfde geheugenruimte bestaat, ook al doorlopen we er constant
een, twee, drie doorheen.
Dus dit is hoe for-lussen onder de motorkap werken als we dat doen voor, laten we zeggen, ngom en dan een lijst
geven.
Het gaat door alles heen, het zal er een bewonderenswaardige van maken en het zal blijven draaien
en de volgende iterator blijven roepen, keer op keer, totdat we het einde van de regel beëindigen en dan
uit de lus breken.
En hoe controleren we de werkelijke waarden van de iterator?
Onthoud dat de volgende functie het volgende item zal uitvoeren.
Dus als ik hier print.
En ik klik op uitvoeren.
Ik krijg een, twee, drie.
Dus ik kan gewoon keer twee doen als ik op uitvoeren wil klikken.
En daar ga je, zijn speciaal voor Loop, zojuist onze lijst met twee vermenigvuldigd.
Dat is het, dat is alles voor loops, werkt echt, maar hoe zit het met reeksen?
Kunnen we onze eigen bereikfunctie creëren?
Dat kunnen we absoluut, en dit is een leuke.
Laten we een klasse en deze klasse maken, want uiteindelijk gaan we gewoon een object
maken.
Dat heeft acties die we kunnen doen, dus ik zeg mijn gen voor mijn generator, en dit gaat nabootsen wat ons assortiment
doet.
Dus ik ga een klas hebben en deze klas zal een INET-functie hebben, een zelf, een eerste en een laatste.
Dus dit is hoe een bereik we kunnen zeggen, beginnen met dit en eindigen met dit.
En hier zullen we eerst de typische autodidact doen.
Gelijk aan de eerste.
En dan is autodidactische laatste gelijk aan laatste, en ik gebruik hier een klasse omdat, onthoud,
we creëren gewoon ons eigen gegevenstype, ons eigen speciale bereik in Python.
Nu hebben we onze eenvoudige generator, en idealiter willen we kunnen zeggen dat Jen gelijk is aan en mijn Jen instantiëren
om, laten we zeggen, nul tot 100 te hebben, net zoals we zouden doen met een bereik.
En idealiter kunnen we zeggen voor AI en Jen.
En printen.
Ik omdat, ik bedoel, dat is hoe we reeksen kunnen gebruiken, toch?
Dus hoe kan ik dit laten werken?
We kunnen onze Dundar-methoden gebruiken, dus onthoud hoe we de it'a hadden.
Om een iterator te krijgen en de volgende erop te gebruiken?
Welnu, we hebben een gedefinieerde Dundar die itour is en It'a stelt ons in staat om te creëren.
Een luchtbal, dus in ons geval, zeg ik zelf, en hier ga ik gewoon de echte klas teruggeven.
En tot slot willen we de volgende functie op onze Djenne kunnen uitvoeren, omdat we hebben gezien hoe ver Loop's werk is,
we moeten de it'a kunnen gebruiken en dan de volgende Onda.
Dus nogmaals, we kunnen een Dundar-methode gebruiken, die handig wordt genoemd.
Volgende.
En dit is ingebouwd in Python, dus als ik het zelf hoor.
En het enige wat we hier willen doen, is haar laten weten hoe we naast ons werk willen, terwijl ik zeg of we een staat
of gegevens nodig hebben om bij te houden waar we zijn.
Onthoud hoe generator werkt.
Onthoud waar ze zijn.
We kunnen een klasseobject HB maken, dus ik kan zeggen dat stroom gelijk is aan nul.
Dus dit is waar we ons momenteel in onze iteratie bevinden en zeggen mijn gen dot stroom, zolang dat minder is dan
zelf laatst, wat de honderd hier zal zijn als dat het geval is.
Nou, ik wil een getal dat gelijk is aan mijn gen dot stroom, ik wil mijn gen dot stroom met één verhogen omdat we willen zeggen, hey,
we gaan naar de volgende locatie en dan terugkeren.
Het nummer.
Omdat dat is hoe het volgende onder de motorkap werkt, juist, we verhogen onze huidige locatie met één
en we geven gewoon het nummer terug, wat goed is, in ons geval wordt het nul.
En we willen doorgaan, doorgaan, doorgaan.
Nou, totdat de stroom niet langer groter is dan de vorige, in dat geval, gaan we gewoon een
stop-iteratie verhogen omdat er geen dingen meer zijn om over te herhalen.
Eens kijken of dit werkt.
Ik ga dit uitvoeren.
En kijk eens aan, het werkt allemaal.
Ik kon door mijn generator lopen en ik van nul tot negenennegentig printen.
Nogmaals, als we teruggaan naar ons voorbeeld hier.
En ik weet dat dit in het begin een beetje moeilijk is om ernaar te kijken.
Maar het enige wat ik deed was zeggen: ik wil dat een IT-functie de eerste en de laatste optie heeft.
En ik wil door dit object dat ik ga maken willen kunnen itereren, en ik wil ook de
volgende kunnen gebruiken die de for-lus, als je je herinnert uit ons vorige voorbeeld, nodig heeft.
Dus ik ga zeggen voor item in Jen, loop er gewoon doorheen, ik kan er
doorheen kijken omdat dit nu een iterator is en ik kan de volgende waarde erop gebruiken omdat ik ons toesta om te herhalen
en voortdurend met één toenemen.
Totdat we blijven terugkeren, de nummers, blijf het nummer retourneren totdat mijn geslachtsstroom honderd wordt
en 100 niet minder is dan 100 honderd, wat als laatste de titel heeft.
Dus het gaat een stop-iteratie verhogen.
De for-lus vangt ons automatisch op, zodat deze niet erodeert en stopt met herhalen.
Zo werkt dat onder de motorkap met bereik.
Nu, je hoeft dit niet te weten, je zult in je dagelijkse leven niet gevraagd worden om dit te implementeren, maar ik
wilde je laten zien dat dit is hoe de dingen werken.
Ik denk dat dat belangrijk is.