Heim >Backend-Entwicklung >Python-Tutorial >Einführung in das Python-Schlüsselwort yield
Coroutinen sind eine Möglichkeit, asynchronen I/O-Code in Tornado zu entwickeln. Die Coroutine verwendet das Python-Schlüsselwort yield, um die Ausführung des Aufrufers anzuhalten und fortzusetzen. Bevor wir etwas über Coroutinen lernen, müssen wir uns zunächst mit dem Konzept und der Verwendung von Yield vertraut machen. Um Yield zu verstehen, müssen wir zunächst das Konzept von Iteratoren verstehen.
In Python werden Iteratoren, die mit dem Schlüsselwort yield definiert werden, auch [Generatoren] genanntfor number in range(5):#range返回一个列表 print(number)range() gibt eine Sammlung zurück, die die angegebenen Elemente enthält, und die for-Anweisung kapselt sie in einen Iterator für den Zugriff. Verwenden Sie iter(), um über Listen zu sprechen Die Sammlung wird in einen Iterator umgewandelt, zum Beispiel:
numbers=[1,2,3,4,5] #t就是迭代器 t=iter(numbers) #打印t对象,以便查看其类型 print(t)Rückgabeergebnis:
<list_iterator object at 0x10e805748>Im Vergleich zu gewöhnlichen Python-Objekten verfügen Iteratoren über eine weitere
-Methode kann ein Element zurückgeben, der Aufrufer (z. B. eine for-Anweisung) kann auf die Sammlungselemente zugreifen, indem er die Methode __next__()
kontinuierlich aufruft. __next__()
numbers=[1,2,3,4,5] #t就是迭代器 t=iter(numbers) #打印t对象,以便查看其类型 print(t.__next__()) print(t.__next__()) print(t.__next__()) print(t.__next__())Rückgabeergebnis:
1 2 3 4Der Aufrufer kann die
-Methode so lange aufrufen, bis die StopIteration-Ausnahme zurückgegeben wird. __next__()
import time def demoIternator(): print("---1---") yield 1 print("---2---") yield 2 print("---3---") yield 3 print("---4---") for x in demoIternator(): print(x) time.sleep(1)Bei jedem Aufruf der __next__()-Methode des Iterators wird die Iteratorfunktion ausgeführt und das Ergebnis von yield wird als Iterationsrückgabeelement zurückgegeben .
Das obige ist der detaillierte Inhalt vonEinführung in das Python-Schlüsselwort yield. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!