Willkommen zurück, ich möchte, dass wir verstehen, wie die Dinge unter der Haube
funktionieren, also zeige ich Ihnen zwei Beispiele für die Implementierung unserer eigenen für Loop und dann der Implementierung unserer eigenen Bereichsfunktion.
Der erste ist also unsere for-Schleife.
Also werde ich eine spezielle for-Schleife sagen.
Unter der Haube empfängt es nur Iterable, und dann werden wir Iterator sagen.
Ist jetzt ein iterierbares Element, damit wir ein iterierbares haben, haben wir eine sogenannte ED-Funktion.
Das akzeptiert das Iterable, das wir gerade bestanden haben.
Nun, diese innere Funktion wird es uns ermöglichen, die nächste Funktion für dieses Iterable zu verwenden, also bleiben Sie bei mir.
Ich werde sagen, während wahr.
Ich will.
Versuchen.
Und in diesem Triblock wird Iterator sagen.
Und wir können, sagen wir, hier eine Operation ausführen, wenn wir wollen, oder wir können einfach den nächsten Iterator aufrufen.
Lassen Sie uns hier etwas drucken, damit wir sehen, was der Iterator ist.
Und schließlich möchte ich, dass wir aufhören, wenn wir die Ausnahme zum Beenden der Iteration haben.
Erinnern Sie sich an den, den wir gesehen haben, bei dem es keine weiteren Elemente im Iterable gibt?
Und hier können wir einfach nur brechen.
Und stellen Sie sicher.
Ich habe den Colin richtig eingestellt, also wenn ich jetzt speziell für Loop mache und ihm eine Liste von eins, zwei, drei gebe und ich auf
Ausführen klicke.
Hör zu.
Ich durchlaufe einige iterierbare Objekte mit next.
Und Sie sehen, dass dieses Objekt im selben Speicherplatz existiert, obwohl wir es ständig durch
eins, zwei, drei durchlaufen.
So funktionieren for-Schleifen unter der Haube, wenn wir for, sagen wir, ngom machen und ihm dann eine Liste
geben.
Es wird alles durchgehen, es wird es zu einem bewundernswerten machen und es wird weiterlaufen und immer
und immer wieder den nächsten Iterator aufrufen, bis wir das Ende der Zeile beenden und dann aus
der Schleife ausbrechen.
Und wie überprüfen wir die tatsächlichen Werte des Iterators?
Denken Sie daran, dass die nächste Funktion ausgibt, was auch immer das Element als nächstes ist.
Also wenn ich hier drucke.
Und ich klicke auf Ausführen.
Ich bekomme eins, zwei, drei.
Also ich kann einfach mal zwei machen wenn ich auf Run klicken wollte.
Und los gehts, sind speziell für Loop, einfach unsere Liste mit zwei multipliziert.
Das ist es, das ist alles für Schleifen, funktioniert wirklich, aber was ist mit Bereichen?
Können wir unsere eigene Reichweitenfunktion erstellen?
Wir können absolut, und das macht Spaß.
Lassen Sie uns eine Klasse und diese Klasse erstellen, denn am Ende des Tages werden wir nur ein Objekt
erstellen.
Das hat Aktionen, die wir tun können, also sage ich mein Gen für meinen Generator, und das wird nachahmen, was unser Sortiment
macht.
Ich werde also eine Klasse haben und diese Klasse wird eine INET-Funktion haben, wird ein Selbst, ein erstes und ein letztes
haben.
So kann ein Sortiment, das wir sagen können, damit beginnen und damit enden.
Und hier machen wir zuerst den typischen Autodidakten.
Entspricht dem ersten.
Und dann ist das autodidaktische Letzte gleich dem Letzten, und ich verwende hier eine Klasse, weil
wir nur unseren eigenen Datentyp erstellen, unseren eigenen speziellen Bereich in Python.
Jetzt haben wir unseren einfachen Generator, und idealerweise möchten wir Jen gleich sagen können und mein Jen instanziieren, um
beispielsweise null bis 100 zu haben, genau wie wir es mit einem Bereich tun würden.
Und idealerweise können wir für AI und Jen sagen.
Und drucken.
Ich weil, ich meine, so können wir Bereiche verwenden, oder?
Wie kann ich das also zum Laufen bringen?
Nun, wir können unsere Dundar-Methoden verwenden, also denken Sie daran, wie wir das it'a hatten.
Um einen Iterator zu erhalten und als nächstes darauf zu verwenden?
Nun, wir haben ein definiertes Dundar, das unsere Tour ist und es uns erlaubt zu erschaffen.
Ein Airball, also in unserem Fall sage ich selbst, und hier gebe ich die eigentliche Klasse einfach so zurück.
Und schließlich wollen wir die nächste Funktion auf unserer Djenne ausführen können, weil wir gesehen haben, wie weit die Arbeit von Loop ist, wir müssen
in der Lage sein, die it'a und dann die nächste Onda zu verwenden.
Wir können also wieder eine Dundar-Methode verwenden, die bequem aufgerufen wird.
Nächste.
Und dies ist in Python integriert, also wenn ich es selbst höre.
Und alles, was wir hier tun wollen, ist, ihr mitzuteilen, wie wir als nächstes arbeiten wollen, während ich sage, ob und wir irgendeine Art von Zustand
oder Daten brauchen, um den Überblick zu behalten, wo wir sind.
Denken Sie daran, wie der Generator funktioniert.
Denken Sie daran, wo sie sind.
Nun, wir können ein Klassenobjekt HB erstellen, also kann ich sagen, Strom ist gleich Null.
Dies ist also der Punkt, an dem wir derzeit bei unserer Iteration sind und sagen, dass mein Gen Dot aktuell ist, solange dies nicht
der Fall ist, was hier die Hundert sein wird, wenn dies der Fall ist.
Nun, ich möchte, dass eine Zahl meinem Genpunktstrom entspricht, ich möchte meinen Genpunktstrom um eins erhöhen, weil wir sagen möchten, hey, wir bewegen
uns zum nächsten Ort und kehren dann zurück.
Die Nummer.
Denn so funktioniert Next unter der Haube, richtig, wir erhöhen unseren aktuellen Standort um eins
und geben einfach die Zahl zurück, die in unserem Fall Null sein wird.
Und wir wollen weitermachen, weitermachen, weitermachen.
Nun, bis der aktuelle nicht mehr größer als der letzte ist, werden wir in diesem Fall einfach eine Stop-Iteration auslösen,
weil es keine weiteren Dinge mehr gibt, über die man iterieren muss.
Mal sehen ob das funktioniert.
Ich werde das laufen lassen.
Und sieh dir das an, es funktioniert alles.
Ich konnte meinen Generator durchschleifen und von null bis neunundneunzig drucken.
Nochmals, wenn wir hier auf unser Beispiel zurückkommen.
Und ich weiß, das ist auf den ersten Blick etwas schwer zu sehen.
Aber ich habe nur gesagt, ich möchte, dass eine IT-Funktion die Möglichkeit hat, zuerst und zuletzt zu sein.
Und ich möchte in der Lage sein, durch dieses Objekt zu iterieren, das ich erstellen werde, und ich möchte auch in
der Lage sein, die nächste, die for-Schleife benötigt, zu verwenden, wenn Sie sich an unser vorheriges Beispiel erinnern.
Also sage ich für item in Jen, schleife es einfach durch, ich kann es durchschauen,
weil dies jetzt ein Iterator ist und ich kann den nächsten Wert darauf verwenden, weil ich es uns erlaube, eine Schleife zu machen
und ständig um eins erhöhen.
Bis wir die Zahlen immer wieder zurückgeben, geben Sie die Zahl weiter zurück, bis mein aktuelles
Geschlecht einhundert wird und 100 nicht weniger als 100 ist, was zuletzt selbstbetitelt ist.
Es wird also eine Stop-Iteration ausgelöst.
Die for-Schleife fängt uns automatisch ab, damit sie nicht erodiert und die Schleife stoppt.
So läuft es mit Reichweite unter der Haube.
Nun, Sie müssen das nicht wissen, Sie werden in Ihrem Alltag nicht gefragt werden, dies umzusetzen, aber
ich wollte Ihnen zeigen, dass dies so funktioniert.
Ich denke, das ist wichtig.