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