2

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

dir1\file1.py

from dir2.file2 import ClassOne
myObject = ClassOne()

dir1\dir2\file2.py

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

重新加载调用未能找到模块“file2”。

我的问题是,我该如何正确地做到这一点,而不必将所有内容都保存在一个文件中?

一个相关问题:当​​重新加载工作时,myObject 会使用新代码吗?

谢谢你

4

1 回答 1

3
   def reload_module():
       import file2
       reload(file2)

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

于 2009-07-03T19:17:59.613 回答