4

当我使用字典MyClass从文件中导入类时,我会这样做myModule.pymyModules

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, unlessbar是一个模块时(在您的情况下,它看起来不是),您将不得不使用另一个 import 语句。

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.

如果由于某种原因,您不想要两个导入,那么已经导入的模块也可以在sys.modules

于 2012-10-30T12:39:42.250 回答