当我使用 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

最佳答案

您必须有一个模块才能重新加载。当您使用 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.

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

关于python - 在python中重新加载模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13139066/

10-12 04:10