


Python-Ausbeute und Ausbeute aus Nutzungszusammenfassung und ausführlicher Erklärung
Zusammenfassung der Verwendung von Python yield und yield von
yield Funktion:
Hinweis: Die next()-Methode des Generators ist in Python 2 next(), in Python 3 jedoch __next__()
【Es gibt zwei Unterstriche vor und nach dem nächsten】
Verwandeln Sie eine Funktion in einen Generator. Die Funktion mit yield ist keine gewöhnliche Funktion mehr. Das heißt: Eine Funktion mit yield ist ein Generator. Sie unterscheidet sich von einer gewöhnlichen Funktion. Das Generieren eines Generators sieht aus wie ein Funktionsaufruf, führt jedoch keinen Funktionscode aus, bis next() aufgerufen wird Eine for-Schleife next()) startet die Ausführung. Obwohl der Ausführungsablauf weiterhin entsprechend dem Ablauf der Funktion ausgeführt wird, wird er bei jeder Ausführung einer Yield-Anweisung unterbrochen und ein Iterationswert zurückgegeben. Die nächste Ausführung wird mit der nächsten Yield-Anweisung fortgesetzt. Es sieht so aus, als ob eine Funktion während der normalen Ausführung mehrmals durch yield unterbrochen wird und jede Unterbrechung den aktuellen Iterationswert über yield zurückgibt.
Die Vorteile von yield liegen auf der Hand. Das Umschreiben einer Funktion als Generator gibt ihr die Möglichkeit zur Iteration. Im Vergleich zur Verwendung einer Instanz einer Klasse zum Speichern des Status zur Berechnung des next()-Werts ist nicht nur der Code prägnant, sondern auch Der Ausführungsprozess ist äußerst klar.
Verwenden Sie print, um die Fibonacci-Folge zu drucken – Basisversion
#!/usr/bin/env python # -*- coding: utf-8 -*-def fab(max): n , a, b = 0, 0 , 1 while n < max: print(b) a, b = b, a + b n = n + 1if __name__ == '__main__': fab(6) # 1 1 2 3 5 8
Verwenden Sie yield, um die Fibonacci-Folge zu drucken – aktualisierte Version
#!/usr/bin/env python # -*- coding: utf-8 -*-def fab(max): n , a, b = 0, 0 , 1 while n < max: yield b a, b = b, a + b n = n + 1if __name__ == '__main__': for n in fab(6): # 1 1 2 3 5 8 print(n)
So beurteilen Sie, ob eine Funktion ein spezieller Generator ist. Funktion r#!/usr/bin/env python
# -*- coding: utf-8 -*-from inspect import isgeneratorfunction
def fab(max):
n , a, b = 0, 0 , 1
while n < max:
yield b
a, b = b, a + b
n = n + 1if __name__ == '__main__':
f1 = fab(3)
# True fab是一个generator function
print(isgeneratorfunction(fab))
# False fab(3)不是一个generator function
# 而fab(3)是调用fab返回的一个generator print(isgeneratorfunction(fab(3)))
Verwenden Sie yield, um Implementieren Sie große Dateien, um #!/usr/bin/env python
# -*- coding: utf-8 -*-def read_file(fpath):
BLOCK_SIZE = 100
with open(fpath, "rb") as f:
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block else:
returnif __name__ == '__main__':
fpath = "/home/exercise-python3.7.1/vote/mysite/mysite/polls/test.txt"
read_gen = read_file(fpath)
print(read_gen.__next__())
print(read_gen.__next__())
print(read_gen.__next__())
print(read_gen.__next__())
# for循环会自动调用generatr的__next__()方法,故输出效果同如上的4个print 【内容较短,4个print就将test.txt中的内容输出完了】 for data in read_gen:
print(data)
yield und yield from us zu lesen. Schlussfolgerung: Aus dem Vergleich der beiden oben genannten Methoden ist ersichtlich, dass das Hinzufügen eines iterierbaren Objekts nach yield from jedes Element im iterierbaren Objekt eins ergeben kann um eins ist der Code prägnanter und die Struktur klarer.
Verwandte Lernempfehlungen: Python-Video-Tutorial
Das obige ist der detaillierte Inhalt vonPython-Ausbeute und Ausbeute aus Nutzungszusammenfassung und ausführlicher Erklärung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Shutil.rmtree () ist eine Funktion in Python, die den gesamten Verzeichnisbaum rekursiv löscht. Es kann bestimmte Ordner und alle Inhalte löschen. 1. Basisnutzung: Verwenden Sie Shutil.rmtree (Pfad), um das Verzeichnis zu löschen, und Sie müssen FilenotFoundError, Erlaubnissekror und andere Ausnahmen verarbeiten. 2. Praktische Anwendung: Sie können Ordner, die Unterverzeichnisse und Dateien enthalten, in einem Klick löschen, z. B. temporäre Daten oder zwischengespeicherte Verzeichnisse. 3. ANMERKUNGEN: Der Löschvorgang wird nicht wiederhergestellt; FilenotFoundError wird geworfen, wenn der Weg nicht existiert. Es kann aufgrund von Berechtigungen oder Einstellungen fehlschlagen. 4. Optionale Parameter: Fehler können von ignore_errors = true ignoriert werden

Um eine virtuelle Python -Umgebung zu erstellen, können Sie das Venv -Modul verwenden. Die Schritte sind: 1. Geben Sie das Projektverzeichnis ein, um die Python-Mvenvenv-Umgebung auszuführen, um die Umgebung zu schaffen. 2. verwenden Sie SourceEnv/bin/aktivieren Sie in Mac/Linux und Env \ Skripts \ aktivieren in Windows; 3.. Verwenden Sie das Pipinstall -Installationspaket, Pipfreeze> Anforderungen.txt, um Abhängigkeiten zu exportieren. V. Virtuelle Umgebungen können Projektabhängigkeiten isolieren, um Konflikte zu verhindern, insbesondere für die Entwicklung von Mehrfachprojekten, und Redakteure wie Pycharm oder VSCODE sind es ebenfalls

Installieren Sie den entsprechenden Datenbanktreiber; 2. verwenden Sie Connect (), um eine Verbindung zur Datenbank herzustellen. 3. Erstellen Sie ein Cursorobjekt; V. 5. Verwenden Sie Fetchall () usw., um Ergebnisse zu erhalten. 6. Commit () ist nach der Änderung erforderlich; 7. Schließlich schließen Sie die Verbindung oder verwenden Sie einen Kontextmanager, um sie automatisch zu behandeln. Der vollständige Prozess stellt sicher, dass die SQL -Operationen sicher und effizient sind.

Verwenden Sie Multiprocessing.queue, um Daten zwischen mehreren Prozessen zu übergeben, die für Szenarien mehrerer Hersteller und Verbraucher geeignet sind. 2. Verwenden Sie Multiprocessing.Pipe, um eine bidirektionale Hochgeschwindigkeitskommunikation zwischen zwei Prozessen zu erreichen, jedoch nur für Zweipunktverbindungen; 3. Verwenden Sie Wert und Array, um einfache Datentypen im gemeinsamen Speicher zu speichern, und müssen mit Sperre verwendet werden, um Wettbewerbsbedingungen zu vermeiden. 4. Verwenden Sie den Manager, um komplexe Datenstrukturen wie Listen und Wörterbücher auszutauschen, die hoch flexibel sind, aber eine geringe Leistung haben und für Szenarien mit komplexen gemeinsamen Zuständen geeignet sind. Geeignete Methoden sollten basierend auf Datengröße, Leistungsanforderungen und Komplexität ausgewählt werden. Warteschlange und Manager eignen sich am besten für Anfänger.

Verwenden Sie Boto3, um Dateien auf S3 hochzuladen, um Boto3 zuerst zu installieren und AWS -Anmeldeinformationen zu konfigurieren. 2. Erstellen Sie einen Client über boto3.client ('s3') und rufen Sie die Methode upload_file () auf, um lokale Dateien hochzuladen. 3.. Sie können S3_Key als Zielpfad angeben und den lokalen Dateinamen verwenden, wenn er nicht angegeben ist. V. 5. ACL, ContentType, StorageClass und Metadaten können durch den Parameter exteralArgs eingestellt werden. 6. Für Speicherdaten können Sie Bytesio verwenden, um Wörter zu erstellen

Pythonlistscani Implementierungsaufnahme append () penouspop () popopoperations.1.UseAppend () zwei -glückselige StotetopeThestack.2.USEP OP () TOREMOVEANDRETURTHETOPHETOP -Element, EnsuringToCheCifthestackisnotemptoavoidEx -Regerror.

WAPHREFERENCESEXISTTOALALEFERCECTOBICTOUTPREENTINGHEIRGARBAGECOLLEKTION, ASFAHREDAVOIDMEMOREAKSANDCIRCULARREFERENCEN.1. UseWeakkeyDictionorWeakValedictionaryForCacheOrmapingStoletUnusedObjectsBecollected.2. Useweakreferences-Ansinchild-to

Verwenden Sie die PythonSchedule -Bibliothek, um Timing -Aufgaben einfach zu implementieren. Installieren Sie die Bibliothek zunächst über PipinstallSchedule und importieren Sie dann die Zeitplan- und Zeitmodule, definieren Sie die Funktionen, die regelmäßig ausgeführt werden müssen, und verwenden Sie dann den Zeitplan. Jede (), um das Zeitintervall festzulegen und die Aufgabenfunktion zu binden. Rufen Sie schließlich den Zeitplan an.run_pending () und die Zeit. Wenn Sie beispielsweise alle 10 Sekunden eine Aufgabe ausführen, können Sie sie als Zeitplan schreiben. Jeder (10) .Seconds.do (Job), der die Zeitplanung durch Minuten, Stunden, Tage, Wochen usw. unterstützt, und Sie können auch bestimmte Aufgaben angeben.
