Heim > Backend-Entwicklung > Python-Tutorial > Die Lösung für das Auftreten von gen.Return(\'hello\') im Tornado

Die Lösung für das Auftreten von gen.Return(\'hello\') im Tornado

WBOY
Freigeben: 2024-02-29 22:58:02
nach vorne
1211 Leute haben es durchsucht

Die Lösung für das Auftreten von gen.Return(\hello\) im Tornado

Der Grund für den Fehler

In Python ist Tornado ein NetzwerkFramework, das auf der Ereignisschleife basiert. Es verwendet Coroutinen, um die Parallelität zu handhaben, und gen.Return("hello") ist eine Methode, die zum Zurückgeben von Werten in Coroutinen verwendet wird. Wenn Sie die asynchronen Funktionen von Tornado verwenden, verwenden Sie gen.Return(), um einen Wert in einer Coroutine zurückzugeben. So lösen Sie das Problem

Verwenden Sie in Tornado yield und gen.Return(), um Werte zurückzugeben. Wenn Sie einen Wert in einer Coroutine zurückgeben möchten, können Sie yield und gen.Return() verwenden, um Ihr Ziel zu erreichen.

Beispiel:

@gen.coroutine
def my_coroutine():
result = yield some_async_call()
raise gen.Return(result)
Nach dem Login kopieren

Verwenden Sie async

io

.run() oder tornado.gen.convert_yielded() außerhalb der Funktion, um den Rückgabewert zu erhalten.

result = await my_coroutine()
Nach dem Login kopieren
Nach dem Login kopieren
Wenn Sie einen Wert in einer Coroutine zurückgeben möchten, sollten Sie yield und gen.Return() verwenden, um Ihr Ziel zu erreichen.

Verwendungsbeispiel

Das Folgende ist ein einfaches Beispiel für die Verwendung von Coroutinen in Tornado und die Rückgabe von Werten:

import tornado.ioloop
import tornado.gen

@tornado.gen.coroutine
def my_coroutine():
result = yield some_async_call()
raise tornado.gen.Return(result)

def handle_result(result):
print(result)

if __name__ == "__main__":
result = tornado.ioloop.IOLoop.current().run_sync(my_coroutine)
handle_result(result)
Nach dem Login kopieren

Some_async_call() hier ist eine asynchrone Funktion.

Wenn Sie den Rückgabewert außerhalb der Funktion erhalten möchten, können Sie Folgendes tun:

result = await my_coroutine()
Nach dem Login kopieren
Nach dem Login kopieren

Natürlich kann auch die Async/Await-Syntax verwendet werden, was das Hinzufügen des Async-Modifikators vor der Funktion und die Verwendung von Wait beim Aufruf der Funktion erfordert.

async def my_coroutine():
result = await some_async_call()
return result
Nach dem Login kopieren

Im obigen Beispiel ist result der Rückgabewert, der in handle_result() verarbeitet werden kann.

Das obige ist der detaillierte Inhalt vonDie Lösung für das Auftreten von gen.Return(\'hello\') im Tornado. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lsjlt.com
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