如何重新加载在另一个文件中导入的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会使用新代码吗?
谢谢!
1 个回答
3
def reload_module():
import file2
reload(file2)
不过,这并不会直接改变你从旧版的file2中实例化的对象类型。Python Cookbook第二版里有一个方法可以实现这样的功能,但这个方法的代码和讨论都非常长且复杂,没法在这里详细说明(我相信你可以在谷歌图书搜索中找到它,或者如果找不到的话,原版的“原始”版本[在我们做了所有改进之前],至少应该还在activestate的食谱网站上)。