[解決済み】Pythonで、関数の中でimportするとどうなるのか?[重複しています]。
2022-04-08 08:47:09
質問
Pythonのモジュールや関数を関数内にインポートすることの利点と欠点は、速度やメモリの効率に関してどのようなものでしょうか?
関数が実行されるたびに再インポートされるのでしょうか、それとも関数が実行されるかどうかにかかわらず、最初に一度だけなのでしょうか?
解決方法は?
<ブロッククオート関数を実行するたびに再インポートされるのでしょうか?
いいえ。むしろ、Pythonモジュールは基本的にインポートされるたびにキャッシュされるので、2回目(または3回目、4回目...)のインポートは実際には全体のインポート処理を再び通過することを強制しません。 1
<ブロッククオート関数の実行の有無に関わらず、最初に一度だけインポートされるのでしょうか?
いいえ、関数が実行された場合のみ、そしてその時にのみインポートされます。 2 , 3
メリットについては、人それぞれだと思います。もし、ある関数をごくまれにしか実行せず、そのモジュールを他のどこにもインポートする必要がないのであれば、それは
かもしれません
その関数の中だけでインポートするのは有益です。あるいは、名前の衝突やその他の理由で、そのモジュールやそのモジュールからのシンボルを利用したくない場合。
どこでも
特定の関数のみでインポートしたい場合もあります。(もちろん、常に
from my_module import my_function as f
というような場合です)。
一般的な実務では、おそらくそれほどメリットはないでしょう。実際、ほとんどの Python スタイルガイドでは、プログラマはモジュールファイルの先頭にすべての import を配置することを推奨しています。
関連
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] Pythonスクリプトのプロファイリングはどのように行うのですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 億の相対的輸入
-
[解決済み] モジュール名を文字列で指定してインポートするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
pythonを使ったオフィス自動化コード例
-
PythonはWordの読み書きの変更操作を実装している
-
python implement mysql add delete check change サンプルコード
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み] import文は常にモジュールの先頭にあるべきですか?
-
[解決済み] 関数内部でインポートするのはpythonicですか?