11

私はデザインに関していくつかのことを理解しようとしています。

レイジー インポート機能が使用されているコードが多数見られます。レイジー インポートとは、「LazyImport」スタイルをサポートする特定のレシピ、パッケージ、およびモジュールによって提供される機能を意味します。一般に、これらの実装は、モジュールが使用される場合にのみモジュールをインポートし、さまざまなものにいくつかの追加のフックを提供することを目的としています。ここでエラー状態が遅れていることは知っていますが、Python で Lazy Import がデフォルトの戦略ではない理由を理解しようとしています。

それが一般的な有用なケースを作るのを妨げる(他の)欠点は何でしょうか。または、これをデフォルトのインポートメカニズム戦略として使用する言語があります。

4

3 に答える 3

5

Python での遅延インポートの例を次に示します。

def xmlfrobnicator(xmlstr):
    from lxml import etree

    # do whatever

ほとんどのプログラムにとって利点がほとんどないため、一般的には使用されません。一度ロードされると、モジュールはロードされます (アンロードする手順を実行しない限り)。使用する価値があります。

プログラムが短時間しか実行されず、すべての機能を使用しない可能性がある JavaScript を見たことがあると思います。また、実行したとしても、モジュールのバックグラウンド ロードにより、ユーザーが感じる速度が向上します。

于 2012-04-10T07:38:09.057 に答える
4

Python は、PHP などとは異なり、すべての要求/アクション/... がアプリケーション全体を再起動するような方法で使用されることはめったにありません。
したがって、起動時にすべてをインポートすると、遅延が煩わしいアプリケーションの実行中にインポートを実行する必要がないという利点があります。
ローカル/遅延インポートの唯一の利点は、循環インポートで問題が発生しないことです。

于 2012-04-10T07:40:44.670 に答える