如何重新加载在另一个文件中导入一个Python模块?(How to reload a Python

2019-06-24 22:37发布

我想学习Python如何重新加载模块,但都创下了路障。 比方说,我有:

dir1\file1.py

from dir2.file2 import ClassOne
myObject = ClassOne()

dir1\dir2\file2.py

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

重装调用失败找到模块“文件2”。

我的问题是,我该怎么做这个正确的,而不必把一切都在一个文件?

一个相关的问题:当重载不工作,myObject的将使用新的代码?

谢谢

Answer 1:

   def reload_module():
       import file2
       reload(file2)

然而,这并不本身改变你已经从以前版本的文件2的持有类实例化对象的类型。 Python的食谱第2版提供了如何完成这样的壮举配方,这是太漫长而复杂的代码和讨论,在这里重现(我相信你可以在谷歌图书搜索阅读,或做不到这一点原来的“原始”版本[我们没有给它的所有增强功能前],至少,应该还是在ActiveState的菜谱在线网站)。



文章来源: How to reload a Python module that was imported in another file?