[解決済み] import文は常にモジュールの先頭にあるべきですか?
2022-03-20 09:37:25
質問
PEP 8 の状態になります。
Importsは常にファイルの先頭に置かれ、モジュールコメントやdocstringの直後で、モジュールグローバルや定数の前に置かれます。
しかし、インポートするクラス/メソッド/関数が稀にしか使用されないのであれば、必要なときにインポートする方が効率的なのではないでしょうか?
これではありませんか。
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()
解決方法は?
モジュールのインポートはかなり高速ですが、即座にはできません。ということです。
- インポートをモジュールの先頭に置くのは、一度だけ支払う些細なコストなので問題ない。
- 関数内にimportを置くと、その関数の呼び出しに時間がかかるようになります。
ですから、効率を重視するのであれば、インポートを一番上に置くことです。インポートを関数内に移動させるのは、プロファイリングでそれが有効であることが示された場合だけにしてください。 した のプロファイリングで、パフォーマンスを向上させるのに最適な場所を確認することができますね?)
遅延インポートを行う理由として、私が見た中では
- オプションのライブラリに対応。あなたのコードが異なるライブラリを使用する複数のパスを持っている場合、オプションのライブラリがインストールされていない場合、壊れないようにします。
-
での
__init__.py
は、インポートされても実際には使用されないプラグインです。例としては Bazaar プラグインがあり、これはbzrlib
のレイジーローディングフレームワークを使用します。
関連
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonショートビデオクローラーチュートリアル
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] フルパスでモジュールをインポートするには?
-
[解決済み] 同じディレクトリやサブディレクトリ内のクラスをインポートする方法は?
-
[解決済み] 相対パスからモジュールをインポートする
-
[解決済み] import module」または「from module import」を使用しますか?
-
[解決済み] 関数内部でインポートするのはpythonicですか?
最新
-
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によるLeNetネットワークモデルの学習と予測
-
Python関数の高度な応用を解説
-
Pythonによるjieba分割ライブラリ
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】Pythonで、関数の中でimportするとどうなるのか?[重複しています]。