ホームページ > バックエンド開発 > Python チュートリアル > Python での上位インポートと遅延インポート: どちらがより効率的ですか?

Python での上位インポートと遅延インポート: どちらがより効率的ですか?

Barbara Streisand
リリース: 2024-12-02 21:14:14
オリジナル
500 人が閲覧しました

Top or Lazy Imports in Python: Which Is More Efficient?

モジュールの先頭またはモジュール内のインポート ステートメント: 効率に関する懸念

PEP 8 では、ファイルの先頭にインポート ステートメントを配置することが義務付けられています。必要な場合にのみモジュールをインポートする方が効率的です。

パフォーマンス比較

次のコードを考えてみましょう:

class SomeClass(object):

    def not_often_called(self):
        from datetime import datetime
        self.datetime = datetime.now()
ログイン後にコピー

from datetime import datetime

class SomeClass(object):

    def not_often_called(self):
        self.datetime = datetime.now()
ログイン後にコピー

モジュールのインポートは高速ですが、瞬時ではありません。したがって、

  • 先頭のインポート ステートメント: わずかなコストが 1 回だけ発生します。
  • 遅延インポート: すべての関数呼び出しが時間がかかります。

効率考慮事項

パフォーマンスを重視する場合は、効率を高めるためにファイルの先頭にあるインポート ステートメントを優先します。プロファイリングでパフォーマンスの向上が明らかになった場合にのみ、関数内で遅延インポートを検討してください。

遅延インポートの正当な理由

遅延インポートは一般に非効率ですが、次のような有効なシナリオがあります。

  • オプションのライブラリ: ライブラリのインポートは常に回避できるとは限りません
  • __init__.py plugins: 使用できない可能性のあるプラグインのインポートを防止します。

要約すると、そうでない限り、効率を高めるためにインポートをモジュールの先頭に配置します。オプションのライブラリや非アクティブなプラグインなど、遅延読み込みにはやむを得ない理由があります。

以上がPython での上位インポートと遅延インポート: どちらがより効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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