Maison >développement back-end >Tutoriel Python >Comment utiliser la coroutine Tornado en python2.7 ?

Comment utiliser la coroutine Tornado en python2.7 ?

零下一度
零下一度original
2017-06-23 11:27:191766parcourir

Méthode d'écriture incorrecte

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

 

Selon la méthode générale de retour, une erreur sera signalée

Vous devez utiliser raise gen.Return(response.body) Au lieu de return

Exemple officiel

@gen.coroutine
def fetch_json(url):
    response = yield AsyncHTTPClient().fetch(url)
    raise gen.Return(json_decode(response.body))

 

En Python 3.3 , cette exception n'est plus nécessaire : ​​l'instruction <span class="pre">return</span> peut être utilisée directement pour renvoyer une valeur (auparavant <span class="pre">yield</span> et <span class="pre">return</span> avec une valeur ne pouvaient pas être combinées dans la même fonction).

Dans python 3.3 et supérieur, il n'est pas nécessaire de lever une exception, vous pouvez directement utiliser return pour renvoyer directement la valeur. Dans les versions précédentes, rendement et retour avec une valeur de retour ne pouvaient pas être dans la même fonction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn