Heim > Backend-Entwicklung > Python-Tutorial > Coroutinen (Coroutinen) in Python

Coroutinen (Coroutinen) in Python

黄舟
Freigeben: 2017-01-19 17:19:24
Original
1681 Leute haben es durchsucht

Coroutine: Schreiben Sie eine Funktion als Aufgabe, die Eingabeparameter verarbeiten kann
Verwenden Sie die yield-Anweisung und erstellen Sie eine Coroutine in Form des Ausdrucks yield
# Matcher-Fall:

def print_info(data):  
   print('Looking for',data);  
   while True:  
     line = (yield)  
     if data in line:  
       print(line);
Nach dem Login kopieren

Die obige Funktion ist ein Coroutine-Programm. Um diese Funktion zu verwenden, müssen Sie sie zunächst aufrufen und zur ersten Yield-Anweisung weiterleiten.

info = print_info('python');  
info.__next__();  #向前执行第一条yield语句
Nach dem Login kopieren

Ausgabeergebnis:
Suche nach Python

Verwenden Sie dann die Sendemethode, um Daten zur Verarbeitung an die Coroutine zu senden

info.send('Hell world');   
info.send('this is python');   
info.send('python goods');
Nach dem Login kopieren

Wenn die gesendeten Daten den Datenparameterwert enthalten, ist die Übereinstimmung erfolgreich und die Daten werden zurückgegeben
Ausgabeergebnis:
Suche nach Python
Das ist Python
Python-Ware
Wenn send() einen Wert an die Coroutine sendet, wird das Programm vorübergehend angehalten. Nach dem Senden des Werts gibt der Yield-Ausdruck diesen Wert zurück. Das nachfolgende Programm verarbeitet den Rückgabewert, bis es auf den nächsten Ausdruck stößt, und dieser Prozess wird weiter ausgeführt, bis die Coroutine-Funktion zurückkehrt oder die Schließmethode aufgerufen wird
Die auf einem Teil des Programms generierten Daten werden von verwendet ein weiterer Teil des Programms (Produzenten-Konsumenten-Modus)
Beim Schreiben gleichzeitiger Programme ist die Rolle der Coroutine offensichtlich. Sie stellt einen Benutzer von Daten dar.

info =[  
    print_info('python'),  
    print_info('hello'),  
    print_info('chunrui')  
]
Nach dem Login kopieren

bereitet alle Matcher durch Aufruf von __next__() vor.

for n in info:  
  n.__next__();
Nach dem Login kopieren

definiert eine Funktion zum Abrufen der Datei. Jede Datenspalte wird an den Generator übergeben.

def tail(f):  
   for line in f :  
     if not line:  
       time.sleep(0.1);  
       continue; #如果不存在 则推迟0.1s 进行下一次  
     yield line;  
myList = tail(open('E:/work.txt'))
Nach dem Login kopieren

durchläuft die Werte in myList und dann an das Coroutine-Programm gesendet

for m in myList:  
  for n in info:  
    n.send(m);
Nach dem Login kopieren

Ausgabeergebnis:

Looking for python
Looking for hello
Looking for chunrui
python is conputer language
chunrui is name
hello world is the first case
I like to use python
my name is chunrui
Nach dem Login kopieren

Zusammenfassung:
1 Coroutine kann die Aufgabenfunktion des verarbeiten Eingabeparameter. Wenn die Coroutine angehalten wird, erhalten wir den Rückgabewert von ihr und können ihn weitergeben, wenn der Aufruf an das Programm zurückgegeben wird. Sie können weiterhin an der Stelle fortfahren, an der Sie aufgehört haben, indem Sie zusätzliche oder neue Parameter hinzufügen

2. Verwenden Sie die Sendefunktion, um Parameter an die Coroutine zu senden

Das Obige ist die Coroutine (Coroutine) in Python. Weitere Informationen finden Sie auf der chinesischen PHP-Website (www.php.cn). Verwandte Inhalte!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage