我正在尝试学习Python如何重新加载模块,但是遇到了障碍。 假设我有:
dir1\file1.py
:
from dir2.file2 import ClassOne
myObject = ClassOne()
dir1\dir2\file2.py
:
class ClassOne():
def reload_module():
reload(file2)
重新加载调用无法找到模块“file2”。
我的问题是,如何正确地执行此操作,而不必将所有内容保存在一个文件中?
一个相关问题:当重新加载确实有效时,myObject会使用新代码吗?
谢谢
答案 0 :(得分:3)
def reload_module():
import file2
reload(file2)
但是, 本身会改变您从先前版本的file2中保存的类中实例化的对象类型。 Python Cookbook第2版有一个关于如何完成这些专长的方法,它在代码和讨论中都太长而复杂,无法在这里重现(我相信你可以在谷歌图书搜索中阅读它,或者原来的“原始”失败)版本[在我们对它做的所有增强之前],至少应该仍然在activestate cookbook在线网站上。)