ホームページ > バックエンド開発 > Python チュートリアル > 竜巻に現れる gen.Return(\'hello\') の解決策

竜巻に現れる gen.Return(\'hello\') の解決策

WBOY
リリース: 2024-02-29 22:58:02
転載
1211 人が閲覧しました

竜巻に現れる gen.Return(\hello\) の解決策

エラーの理由

python では、Tornado は networkframework# に基づいています。イベントループ##。 concurrency を処理するためにコルーチンを使用しており、gen.Return("hello") はコルーチンで値を返すメソッドです。 Tornado の非同期機能を使用する場合は、gen.Return() を使用してコルーチンの値を返します。

解決方法

Tornado では、yield と gen.Return() を使用して値を返します。コルーチンで値を返したい場合は、yield と gen.Return() を使用して目的を達成できます。

例:

@gen.coroutine
def my_coroutine():
result = yield some_async_call()
raise gen.Return(result)
ログイン後にコピー

戻り値を取得するには、関数の外で async

io.run() または tornado.gen.convert_yielded() を使用します。 rree

コルーチンで値を返したい場合は、yield と gen.Return() を使用して目的を達成する必要があります。

使用例

次は、Tornado でコルーチンを使用して値を返す簡単な例です:

result = await my_coroutine()
ログイン後にコピー

Some_async_call() は非同期関数です。

関数の外で戻り値を取得したい場合は、次のようにすることができます:

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)
ログイン後にコピー

もちろん、async/await 構文も使用できます。その場合は、関数の前に async 修飾子を追加し、関数を呼び出すときに await を使用する必要があります。

rree

上記の例では、result は戻り値であり、handle_result() で処理できます。

以上が竜巻に現れる gen.Return(\'hello\') の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:lsjlt.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート