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!