Okay, ich kann dich nicht sehen, aber ich weiß, was du fühlst, du zweifelst gerade an mir, du
denkst, Generatoren seien nutzlos.
Sie sagen immer, dass sie schnell und leistungsstark sind, aber ich verstehe es nicht wirklich.
Diese LTH-Tastatur und die nächste.
Und ehrlich gesagt macht es einfach keinen Sinn.
Lassen Sie sich von ihrer wahren Kraft überzeugen.
Ich wähle alle aus und lösche sie einfach, weil ich zu einem Beispiel zurückkehren möchte, das wir zuvor
verwendet haben.
Erinnern Sie sich, als wir die Dekorateur-Performance erstellt haben?
In unserem Dekorateurbereich.
Mit diesem Performance-Decorator minimieren wir ihn, ich muss.
Funktioniert für uns, eine Langzeitfunktion, die einen Bereich verwendet.
Und eine weitere Langzeitfunktion, die einen Bereich verwendet und ihn dann in eine Liste umwandelt.
Denken Sie also daran, dass man eine Liste erstellt und dann von dieser Liste, die einen Speicher auf unseren Computern erstellt hat,
eins nach dem anderen geht und die Dinge mit fünf multipliziert mit einem Bereich, der ein in Python
integrierter Generator ist, der nur eins nach dem anderen, halte Null und Gedächtnis und multipliziere mit fünf.
Behalte eins im Gedächtnis, aber multipliziere mit fünf und es geht weiter, geht weiter, macht weiter und entfernt alle
alten Zahlen aus dem Gedächtnis.
Was denkst du, wird die Leistung der beiden sein?
Lass es uns testen.
Und übrigens, ich verlinke die Übung, damit Sie sie selbst ausprobieren und herumspielen können.
Also lass uns lange machen.
Und dann lange Zeit.
Platzieren Sie Ihre Wetten, machen Sie sich bereit.
Lass es uns herausfinden.
Die erste Funktion dauerte lange ein Komma sechs Sekunden.
Und dann dauerte die zweite Funktion fast doppelt so lange.
Das ist ein ziemlich großer Unterschied, oder?
Aber sofort können wir es sagen.
In Ordnung, das ist definitiv performanter als, nun, lange Zeit, um es noch einmal auszuführen, nur um unsere Annahmen zu testen,
um sicherzustellen, dass es richtig ist.
Diesmal brauchte es einen Punkt acht und dann zwei Punkt sechs.
Gut.
Das geht so viel schneller, obwohl beide dasselbe tun.
Und denk daran.
Wenn Sie Google wären, denken Sie darüber nach, wie viele Daten Google hat, wenn Sie bei Google arbeiten, und stellen Sie sich
vor, ob dies noch größer wäre, ob dies noch länger wäre, wenn Sie eine Aufgabe so viel schneller ausführen können.
Verbrauchen Sie viel weniger Ressourcen als Google.
Ich meine, sie würden dich lieben, weil Generatoren in der Lage waren, Dinge nicht im Speicher zu
halten, nicht all diese Ressourcen zu verbrauchen und stattdessen Daten effizient zu verarbeiten.
Und schau mal hier.
Ich konnte diese Funktion in 16 Sekunden lösen.
Ich meine, ja, das hat lange gedauert, aber lange, um es tatsächlich zu schaffen.
Es hat den Prozess beendet.
Wenn dies ein Google-Server war, ist das ein Server, der gerade gestorben ist und völlig nutzlos ist.
Generatoren sind also wirklich sehr nützlich, wenn wir große Datenmengen berechnen, insbesondere wenn wir lange Schleifen verwenden,
in denen wir diesen Speicher nicht wirklich speichern möchten und nicht alles gleichzeitig berechnen müssen,
vielleicht einzeln einer.
Und viele Bibliotheken in Python unter der Haube verwenden Generatoren anstelle von Listen, weil sie so viel
schneller sind.
Denken Sie also daran, einen Generator zu erstellen.
Alles, was wir tun müssen, ist eine Generatorfunktion zu erstellen, die wir wollen.
Und dann können wir hier einfach einen Wert durchlaufen.
Dass wir es vielleicht einem Bereich geben oder wir einfach als Parameter akzeptieren können und alles, was wir tun
müssen, ist einfach dieses Ergebnis zu liefern.
Und machen Sie in diesem Block, was wir wollen, aber stellen Sie sicher, dass wir die Funktion anhalten, damit sie später verwendet werden
kann.
Als Generatorfunktion können wir so etwas wie eine for-Schleife machen und item in der Gen-Funktion sagen und ihr eine Art
Parameter geben.