如何重新加载在另一个文件中导入的Python模块?


问题内容

我正在尝试学习Python如何重新加载模块,但是遇到了障碍。假设我有:

dir1\file1.py

from dir2.file2 import ClassOne
myObject = ClassOne()

dir1\dir2\file2.py

class ClassOne():
   def reload_module():
       reload(file2)

重新加载调用无法找到模块“ file2”。

我的问题是,如何正确执行此操作,而不必将所有内容保存在一个文件中?

一个相关的问题:重新加载生效后,myObject会使用新代码吗?

谢谢


问题答案:
   def reload_module():
       import file2
       reload(file2)

但是,这本身 不会 改变您从file2先前版本中保存的类实例化的对象的类型。Python Cookbook 2nd
Edition上有关于如何完成此类壮举的秘诀,并且代码和讨论都太长和复杂,因此无法在此处重现(我相信您可以在Google图书搜索中阅读它,否则可能会导致原始的“原始内容”失败版本(在我们对它进行的所有增强之前),至少应该仍在activestate
cookbook在线站点上)。