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

时间:2009-07-03 19:13:43

标签: python import module reload

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

dir1\file1.py

from dir2.file2 import ClassOne
myObject = ClassOne()

dir1\dir2\file2.py

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

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

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

一个相关问题:当​​重新加载确实有效时,myObject会使用新代码吗?

谢谢

1 个答案:

答案 0 :(得分:3)

   def reload_module():
       import file2
       reload(file2)

但是, 本身会改变您从先前版本的file2中保存的类中实例化的对象类型。 Python Cookbook第2版有一个关于如何完成这些专长的方法,它在代码和讨论中都太长而复杂,无法在这里重现(我相信你可以在谷歌图书搜索中阅读它,或者原来的“原始”失败)版本[在我们对它做的所有增强之前],至少应该仍然在activestate cookbook在线网站上。)