Выбор, когда выполнять в Python - PullRequest
1 голос
/ 24 июня 2011

Я студент, пишущий скрипт Python для достижения следующих целей:

Учитывая файл .py (который включает в себя логику рисования из pygame), покажите код во время его выполнения вместе с фреймомкоторый отображает рисунки.Я пишу это как инструмент для профессора, чтобы легче было преподавать алгоритмы, имея возможность одновременно демонстрировать код и его результат.

Основная проблема, с которой я сталкиваюсь, - это возможность остановиться на каждой строкекода и дождитесь ответа пользователя, чтобы продолжить.Эта функция очень похожа на «шаг в» от любого отладчика.

Один из методов, которые я изучил, - это использование функций exec () и eval () при выполнении кода из предоставленного исходного файла.В этом исследовании я обнаружил общее мнение, что exec и eval очень сбивают с толку и часто небезопасны (хотя я буду контролировать входные данные).Используя этот метод, я бы последовательно проходил по источнику, ища ответвления или логику принятия решений, которые могут повлиять на то, что должно быть выполнено.

Есть ли лучший способ для использования, чем этот?

1 Ответ

0 голосов
/ 24 июня 2011

Почему бы вам не включить сам отладчик python в свою программу и не запустить его внутри себя, а использовать хуки для графического отслеживания текущей выполняемой строки?

Я также видел, как кто-то встраивал интерпретатор ironPython в свою программу - и вы, вероятно, можете отслеживать текущий код, который выполняется внутри него, и передавать его данные в графический интерфейс.

http://writeonly.wordpress.com/2008/09/08/embedding-a-python-shell-in-a-python-script/

...