Python调试:动态代码编辑

6 投票
3 回答
1772 浏览
提问于 2025-04-15 15:18

我刚开始学Python,不太确定这件事是否可行。

我在Eclipse里使用PyDev插件,基本上我想知道的是,在调试时能不能在断点处编辑代码?也就是说,能不能在调试的时候修改代码。

现在我可以这样做,但似乎在我修改之前的代码行仍然在执行。

另外,像在VBA和C#中那样,你能把程序执行拖回去吗?

如果这两种情况都可以的话,我该怎么开启它们呢?

3 个回答

2

在程序暂停的时候,你可以在控制台里运行任何命令。对我来说,这通常能达到和实时编程一样的效果,不过我还是希望它能像直接用编辑器那样简单优雅。

2

当你启动一个Python程序时,它会被编译成字节码(可能还会保存为.pyc文件)。这意味着你可以修改源代码,但因为你没有“重新打开”源代码,所以这些修改不会被程序识别到。

有一些系统,比如TurboGears(一个网页框架),可以检测到这些变化并自动重启自己,但这样可能会让调试工具感到困惑。

目前也无法“回到过去”,因为字节码解释器需要支持这个功能。

4

从1.4.8版本开始,PyDev在这方面提供了一定的支持。你可以查看更新记录和相关的博客文章

撰写回答