Отладка Python: редактирование кода на лету - PullRequest
6 голосов
/ 23 октября 2009

Я новичок в python и не смог выяснить, возможно ли это или нет.

Я использую плагин PyDev в Eclipse, и в основном все, что я хочу выяснить, это то, можно ли редактировать код, пока вы сидите на точке останова? То есть Редактируйте код во время отладки.

Это позволяет мне делать это в настоящее время, но, похоже, все еще выполняет строку кода, которая существовала до того, как я внес изменения.

Кроме того, можете ли вы отодвинуть выполнение программы назад, как, например, в VBA и C #?

Если что-то из этого возможно, как я могу их включить?

Ответы [ 3 ]

4 голосов
/ 23 октября 2009

PyDev поддерживает это до некоторой степени, начиная с версии 1.4.8, см. заметки об изменениях и соответствующую запись в блоге .

2 голосов
/ 10 июня 2011

Вы можете запускать произвольные команды в консоли во время точки останова. Для моих нужд это, как правило, достигает той же цели, что и кодирование вживую, хотя я с этим справился так же элегантно, как и просто с помощью редактора.

2 голосов
/ 23 октября 2009

Когда вы запускаете программу на Python, она будет скомпилирована в байт-код (и, возможно, сохранена в виде файла .pyc). Это означает, что вы можете изменить источник, но так как вы больше не «открываете» источник, изменение не будет принято.

Существуют системы, такие как TurboGears (веб-фреймворк), которые обнаруживают эти изменения и перезагружаются, но, вероятно, это сбивает с толку отладчик.

Возвращение во времени также невозможно в настоящее время, поскольку интерпретатору байт-кода потребуется поддержка для этого.

...