Heim >Backend-Entwicklung >Python-Tutorial >Die Lösung für das Auftreten von gen.Return(\'hello\') im Tornado
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
Beispiel:
@gen.coroutine def my_coroutine(): result = yield some_async_call() raise gen.Return(result)
Verwenden Sie async
io.run() oder tornado.gen.convert_yielded() außerhalb der Funktion, um den Rückgabewert zu erhalten.
result = await my_coroutine()
Wenn Sie einen Wert in einer Coroutine zurückgeben möchten, sollten Sie yield und gen.Return() verwenden, um Ihr Ziel zu erreichen.
Verwendungsbeispiel
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)
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()
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
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!