2013-09-17 6 views
1

У меня есть пакет анализа изображений с графическим интерфейсом в IDL, который требует серьезной перезаписи. Предполагается, что Python является альтернативой IDL (с преимуществами стоимости и некоторыми хорошими библиотеками, среди прочего). Теперь я воткнулся с PyQT4, и похоже, что он должен работать хорошо. Однако одна из лучших вещей в IDL (интерпретация) заключается в том, что если код попадает в ошибку, вы можете исправить его на лету, введите «retall», а затем продолжите свою работу. Если вы занимаетесь часами в каком-то анализе и открываете много файлов данных и т. Д., Это ОГРОМНОЕ улучшение по сравнению с необходимостью выхода, а затем смены и перезапуска программы. Не только это, но мы можем быстро попробовать что-то в командной строке, а затем, если оно выглядит хорошо, скопируйте подпрограмму, поместите ее в структуру меню, а затем «retall», и мы вернемся с новой функциональностью, необходимо перезапустить программу.Python эквивалент IDL retall?

Мой вопрос: возможно ли это с помощью Python? Небольшой поиск в Google делает ответ похожим на нет, но поскольку это интерпретируемый язык, я не понимаю, почему нет. Если ответ действительно нет, я бы настоятельно призвал кого-то подумать об осуществлении этого - это, вероятно, особенность, которая больше всего меня порадовала IDL за последнее десятилетие.

Спасибо заранее, Эрик

+0

В приведенном ниже комментарии я подумал: что произойдет, если я выйду из процесса, и этот порожденный процесс умирает? Остановит ли он всю программу, или будет продолжаться основной цикл? – ehudson

ответ

0

Я не думаю, что это может быть сделано.

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

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

+0

Спасибо за комментарий и предложение. Для инструментов анализа это не такая проблема. Если процесс анализа умирает (до тех пор, пока он был действительно просто анализом и не обрабатывал данные), когда вы убиваете эту процедуру и возвращаетесь в основной цикл, кажется, очень редко возникают побочные эффекты (по крайней мере, пара из нас которые разработали это в IDL, регулярно используют эту возможность и не имеют проблем). – ehudson

Смежные вопросы