5

メモリコストは明らかにモジュールの正確な大きさに依存しますが、私は一般的な答えを探しているだけです:Pythonでモジュールをインポートするのは一般的に高価ですか、それとも安価ですか?アプリケーションの全期間にわたってメモリに残る可能性のある小さなスクリプトが数十個ある場合、それはメモリをどれだけ占有しますか?

4

1 に答える 1

8

時間のコストは気にしていないようですが (モジュールは 1 回しかインポートされないので、ばかげているかもしれません)、メモリのコストは気にしていないようです。これらのモジュールのすべての機能が必要な場合、それらすべてをメモリに格納しないようにするにはどうすればよいでしょうか? import最も論理的な方法で物事を行うこともできます。

つまり、Python ではimportステートメントであり、ある種のプリプロセッサ ディレクティブ (または類似のもの) ではないため、ステートメントが適切なタイミングで実行されるように調整するだけで、実際にその内容が必要になるまでモジュールのインポートを遅らせることができます。これは、特に大規模または複雑なプロジェクトで有意義な最適化になるか、少なくともトリッキーなことが可能になります。fooPython コンパイラはwhen you reference foo.bar;があるかどうかをチェックしようとしないことを覚えておいてください。すべての名前は実行時に検索されます。ここでダックタイピングが登場します。コードは、がモジュール、クラス、またはオブジェクトの名前であるfoo.barかどうかを気にしません。foo(基本的にはモジュールやクラスオブジェクトだからなのですが、余談ですが…)

于 2011-07-25T07:15:11.857 に答える