pythonモジュールのロードメカニズムとモジュールの再ロード

943 ワード

ロードモジュール
importもfromも付与文です.
  • importは、モジュールオブジェクト全体を変数名に割り当てます.たとえばimport A:A.pyというファイル名のモジュールがインポートされ、Aとして割り当てられたモジュールオブジェクトが生成されます.
  • from module import x:xは、モジュール内の同じ名前の変数のオブジェクトを参照します.モジュールがロードされていない場合、from文はモジュールを最初にロードし、モジュールと同じ名前の変数名を作成して参照します.

  • import dir 1が欲しいなら.dir2.mod、ディレクトリdir 1、dir 2の下に__が必要init__.py.__init__.pyの役割は、ディレクトリが実際のモジュールファイルではないため、このディレクトリをモジュールとして使用することです.init__.pyは任意のpythonコードを書き込むことができ、空であってもよい.
    コードが実行されると、モジュールはすべてメモリにロードされます.これはpythonスクリプトを変更した場合、現在の実行では有効になりません.新しいコードをすぐに実行したい場合は、このモジュールを再ロードできます.
    モジュールの再ロード
    使用方法:
    # Python3
    from imp import reload
    reload(modulename)
    

    注意:
  • reloadはロードされたモジュールを再ロードしますが、元に使用されていたインスタンスは古いモジュールを使用し、新しい本番のインスタンスは新しいモジュールを使用します.
  • reloadはfrom [module] import [object]形式の再ロードをサポートしていません.実際にはmoduleを再ロードすればいいです.

  • References[1]pythonモジュール、reloadすべてのモジュールおよびピット[2]Python reload()関数