【问题标题】:Reload method of already existing object on console in PythonPython中控制台上已存在对象的重新加载方法
【发布时间】:2012-10-15 15:37:00
【问题描述】:

在 Python 控制台(Eclipse、Pydev)中,我执行了一些数据加载。之后我更改了对象方法的一些源代码,并希望在数据对象中包含新功能。数据加载很慢,所以我不想重新启动整个脚本。

有没有一种神奇的方法可以用我在源代码中编辑的新实现来更新对象方法?

How to reload the code of a method of class object in Python? 说我不能以标准方式做到这一点。

那么你能想出一些方法来模拟那个功能吗?也许重新加载类定义,然后通过检查它们的__dict__ 或类似的东西来重新创建所有数据对象?理想情况下,这将尽可能自动化和舒适。我需要考虑什么?

【问题讨论】:

    标签: python console reload


    【解决方案1】:

    不幸的是,Python 无法直接替换现有的对象实例。但是,IPython 将此功能实现为扩展。您可以将 IPython 用作 Python 控制台,或者只是为您的开发环境重新实现此功能。

    请参阅Autoreload of modules in IPythonand ipython docs

    【讨论】:

    • 我明白了 :) 但是,它不会重新加载已经在内存中的对象类?
    • 它实际上会重新加载已经在内存中的类。尝试使用前面提到的 SO 问题中的 ipython autoreload 示例。对我来说,它也适用于类和对象。
    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2011-06-07
    • 2020-02-26
    • 2014-12-08
    • 2017-07-17
    • 2012-08-04
    相关资源
    最近更新 更多