Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich Tornado-Coroutine in Python2.7?

Wie verwende ich Tornado-Coroutine in Python2.7?

零下一度
零下一度Original
2017-06-23 11:27:191727Durchsuche

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!

Stellungnahme:
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