4

辞書を使用しMyClassてファイルmyModule.pyからクラスをインポートすると、次のようになります。myModules

from myModules.myModule import MyClass

ファイルに変更を加えた後、このモジュールをリロードするにはどうすればよいですmyModue.pyか?ここにいくつかの失敗があります:

reload(MyClass) # TypeError: reload() argument must be module
reload(myModule) # NameError: name 'myModule' is not defined
reload(myModules.myModule)  # NameError: name 'myModules' is not defined
4

1 に答える 1

3

リロードするにはモジュールが必要です。を使用する場合、モジュールfrom foo import barでない限りbar(あなたの場合はそうではないように見えます)、別のインポートステートメントを使用する必要があります。

from myModules.myModule import myClass
# this will cause myModule.py to be evaluated.  only myClass is in scope

from myModules import myModule
# since myModule has already been imported, myModule.py is not evaluated again. 
# but now myModule is in scope.

reload(myModule)
# this will cause myModule.py to be evaluated again.

何らかの理由で2つのインポートが必要ない場合は、すでにインポートされているモジュールも次の場所にあります。sys.modules

于 2012-10-30T12:39:42.250 に答える