2017-02-20 9 views
1

aiohttp図書館のdocumentation状態:aiohttpで明示的ループパラメータを使用するのはなぜですか?

ループ - HTTPリクエストを処理するために使用されるイベントループ。 paramがNoneの場合、asyncio.get_event_loop()はデフォルトのイベントループを取得するために使用されますが、どこでも明示的なループを使用することを強く推奨します。 (オプション)

loopClientSessionにオブジェクトを渡すことが可能である、などの提供する「モジュールレベル」の機能に

私はあなたに説明することができ、全体として非同期プログラミングのコンセプトに新しいです私なぜオブジェクト/関数にデフォルトを使用させるのではなく、明示的にループを提供することをお勧めしますか?

私は自分のループモックを提供することができ、パフォーマンスが向上しています。

答えて

1

理由は可読性であり、パフォーマンスではありません。

ループを明示的に指定すると、開発者はループインスタンスの発生元を簡単に確認でき、カスタムループをプログラムに挿入する必要がある場合にループを変更しやすくなります。

もう1つの一般的なオプションはになりません。はループパラメータを指定しないため、ループインスタンスを取得するために常にasyncio.get_event_loop()が呼び出されるとします。

(複数のループを使用することができます(たとえば、異なるスレッドで使用できますが、これは一般的な使用例ではありません)

関連する問題