Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich Tornado-Coroutine in Python2.7?
Falsche Schreibweise
class RemoteHandler(web.RequestHandler): @gen.coroutine def get(self): response = httpclient('http://www.baidu.com') self.write(response.body) @gen.coroutine def httpClient(url): result = yield httpclient.AsyncHTTPClient().fetch(url) return result
Gemäß der allgemeinen Rückgabemethode wird ein Fehler gemeldet
Sie müssen raise verwenden gen.Return(response.body) Anstelle von return
Offizielles Beispiel
@gen.coroutine def fetch_json(url): response = yield AsyncHTTPClient().fetch(url) raise gen.Return(json_decode(response.body))
In Python 3.3, Diese Ausnahme ist nicht mehr notwendig: Die <span class="pre">return</span>
-Anweisung kann direkt verwendet werden, um einen Wert zurückzugeben (bisher konnten <span class="pre">yield</span>
und <span class="pre">return</span>
mit einem Wert nicht in derselben Funktion kombiniert werden).
In Python 3.3 und höher ist es nicht erforderlich, eine Ausnahme auszulösen. Sie können Return direkt verwenden, um den Wert direkt zurückzugeben. In früheren Versionen konnten yield und return mit einem Rückgabewert nicht in derselben Funktion liegen.
Das obige ist der detaillierte Inhalt vonWie verwende ich Tornado-Coroutine in Python2.7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!