2009-10-23 54 views
6

我是python的新手,無法確定這是否可行。Python調試:實時編輯代碼

我在Eclipse下使用PyDev插件,基本上我想知道的是,是否可以在坐在斷點處編輯代碼?即在您調試時編輯代碼。

它允許我目前這樣做,但它似乎仍然執行之前存在的代碼行,我做了修改。

另外,你是否能夠像在VBA和C#中一樣將程序執行拖回來?

如果其中任何一種可能,我該如何啓用它們?

回答

2

當你啓動一個Python程序時,它將被編譯成字節碼(可能保存爲.pyc文件)。這意味着您可以更改源代碼,但由於您不再「打開」源代碼,所以不會收到更改。

有像TurboGears(一個Web框架)這樣的系統可以檢測這些變化並重新啓動自己,但這可能會讓調試器感到困惑。

時光倒流也是不可能的,因爲字節碼解釋器需要支持。

+0

的確,您無法及時回溯,而且調試器是單線程的,無法承受重啓,但您的標題「這不適用於Python」是不準確的,因爲@nikow指出。 – jMyles 2011-06-14 05:42:05

4

PyDev從版本1.4.8開始支持此功能,請參閱change notes和相應的blog entry

+0

我沒有看到你正在談論的引用。你能更具體地指出他們嗎?聽起來很令人興奮;我甚至沒有意識到新版本的PyDev,除非你的回答引起我的注意,所以謝謝。 :-) – jMyles 2011-06-10 17:21:32

+0

我修復了第二個鏈接。 – nikow 2011-06-10 17:43:43

2

您可以在斷點處在控制檯中運行任意命令。對於我的需要,這通常達到與編碼直播相同的目的,儘管我對它的使用與使用編輯器一樣優雅。