在Python中,重新加载控制台上已存在的对象的方法。

14 浏览
0 Comments

在Python中,重新加载控制台上已存在的对象的方法。

在Python控制台(Eclipse, Pydev)中,我执行一些数据加载操作。然后,我更改了对象的某个方法的源代码,并希望将新功能包含在数据对象中。由于数据加载速度较慢,因此我不想重新启动整个脚本。\n是否有一种神奇的方法可以更新我在源代码中编辑的新实现的对象方法?\n如何在Python中重新加载类对象的方法代码?说我不能以标准方式做到这一点。\n那么,你能想到模拟该功能的方法吗?也许重新加载类定义,然后通过检查其__dict__或类似方法重新创建所有数据对象?理想情况下,这应该是自动和方便的。我需要考虑什么?

0
0 Comments

在Python中,很遗憾地不能直接替换已存在的对象实例。然而,IPython作为扩展实现了这个功能。你可以使用IPython作为Python控制台,或者为你的开发环境重新实现这个功能。

你可以参考Autoreload of modules in IPythonipython文档了解更多信息。

我明白了 🙂 但是它不能重新加载已经在内存中的对象的类吗?

实际上,它可以重新加载已经在内存中的类。你可以尝试使用之前提到的SO问题中的ipython autoreload示例。对我来说,它也适用于类和对象。

0