Python, Ausbeute, Rückkehr und manchmal Ausbeute von

Ausbeute in Python

In Python können Sie "Yield" in einer Funktion als Generator verwenden. Zum Beispiel

def foo():
    for i in range(10):
       yield i

Geschrieben als

for k in foo():
   print(k)

Wenn Sie schreiben, wird der Wert von 0 bis 9 angezeigt.

Kombinierte Rendite und Rendite in Python

Zum Beispiel

def hoge():
   for i in range(10):
      yield i
   return i+1

Wenn Sie dies tun, erhalten Sie nur das Ergebnis der ** Ausbeute. ** ** ** Dies ist eine Python-Spezifikation, und der Grund dafür ist, dass die Rückgabe im Generator als "StopIteration" behandelt wird. Daher kann man mit Sicherheit davon ausgehen, dass es grundsätzlich schwierig ist, Rendite und Rendite zusammen zu verwenden. Die Rendite wirkt sich also im Grunde genommen als Rendite innerhalb des Generators aus Es ist besser, entweder auf Rendite oder Rendite einzugrenzen.

Verwenden Sie zusammen, auch wenn Sie es erzwingen

Wenn Sie es aus irgendeinem Grund mit return verwenden möchten, verwenden Sie yield from, um den für return festgelegten Wert abzurufen. Sie werden es schaffen. Zum Beispiel

def buzz():
  i = 0
  for j in range(10):
     i += j
     yield j
  return i

Wenn Sie eine solche Funktion schreiben und zurückkehren möchten, bereiten Sie eine neue Funktion separat vor und gehen Sie wie folgt vor Wenn Sie es schreiben, können Sie den Wert der Rückgabe erreichen.

def getter():
  x = yield from buzz()
  yield x

Beachten Sie jedoch, dass "Ausbeute von" eine Technik ist, die nur innerhalb einer Funktion beschrieben werden kann.

Zusammenfassung

--Generator kann mit Ertrag erzeugt werden

Recommended Posts

Python, Ausbeute, Rückkehr und manchmal Ausbeute von
Mit Python abflachen
Lesen und verwenden Sie Python-Dateien aus Python
Über Python, aus und importieren, als
[Python] gibt A [oder / und] B zurück
Von Python bis zur Verwendung von MeCab (und CaboCha)
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Python frühe Rückkehr
Über die Python-Ausbeute
SQL zu SQL
MeCab von Python
Firebase: Verwenden Sie Cloud Firestore und Cloud Storage von Python
Studie aus Python Lesen und Schreiben von Hour9-Dateien
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
[Python] Finde Koordinaten aus zwei Winkeln und Entfernungen
Laden Sie den Befehl von yml mit Python und führen Sie ihn aus
Verknüpfung von PHP und Python von Grund auf auf Laravel
[Python] Komprimieren und dekomprimieren
Verwenden Sie thingspeak aus Python
[Python of Hikari-] Kapitel 06-04 Funktionen (Argumente und Rückgabewerte 3)
Berühren Sie MySQL in Python 3
Python- und Numpy-Tipps
[Python] Pip und Wheel
Bedienen Sie Filemaker von Python aus
Verwenden Sie fließend Python
[Python of Hikari-] Kapitel 06-02 Funktion (Argument und Rückgabewert 1)
Greifen Sie über Python auf Bitcoind zu
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Python Iterator und Generator
Python aus oder importieren
Python-Pakete und -Module
Vue-Cli- und Python-Integration
Verwenden Sie MySQL aus Python
Steuern Sie andere Programme von Python aus (Kommunikation zwischen Python ⇔ exe)
Ruby, Python und Map
Führen Sie Python aus Excel aus
Installieren Sie Python von der Quelle
[Python-Anfänger] Extrahieren Sie die Präfektur und die Stadt aus der Adresse (3 Zeilen).
Führen Sie Befehle aus Python aus
Holen Sie sich den Rückkehrcode eines Python-Skripts von bat
Bedienen Sie Neutronen von Python!
Python-Eingabe und Ausgabe
Python und Ruby teilen sich
Implementieren eines Generators mit Python> Link> Yield und next ()> Yield
Verwenden Sie MySQL aus Python
Betreiben Sie LXC von Python aus
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
Unterschied zwischen return, return None und no return description in Python
Manipuliere Riak aus Python
Erzwinge Python aus Fortran
Verwenden Sie BigQuery aus Python.
Holen Sie sich Dateien von Linux mit paramiko und scp [Python]
[Python of Hikari-] Kapitel 06-03 Funktionen (Argumente und Rückgabewerte 2)
Führen Sie den Befehl von Python aus
[Python] Extrahieren Sie nur Zahlen aus Listen und Zeichenfolgen
Python asyncio und ContextVar
[Python] Von Stdin lesen