如何重新加载在另一个文件中导入的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在线站点上)。