Rodegast
Эффект тот же
Несколько раз я при разработке на языке C сталкивался с ошибками, скрывавшимися в программе. Там даже принты не давали понять, как устроена ошибка, даже очень подробные принты. И только дебаггер и прохождение кода по шагам в дебаггере открывали причину, источник ошибки, давали её понять, осознать её границы и придумать подход для её устранения. Часто надо переделать окружающий код, чтобы избавиться от какой-то мелочи.
Поэтому взгляд на ошибки у меня такой. Не верь глазам своим, ошибка всё равно прячется где-то в совершенно неожиданном месте. Именно поэтому я изучил и дебаггер для питона потом, очень не удобный и очень консольный. Так как когда есть своя программа размером в несколько тысяч строк, в которой есть несколько слоёв абстракции и на каждом слое есть более-менее похожие функции на функции с других слоёв абстракции, бывает нужно ходить между функциями (по дереву вызовов функций) туда и обратно, чтобы понять общение функций с разных слоёв абстракции, правильно ли оно происходит. Иногда таких похождений нужно штук десять с возвратами на уже пройденные точки по второму и третьему разу. В дебаггере всегда можно куда-то прыгнуть резко, где-то остановиться и вернуться на пару шагов назад, где-то что-то запомнить или просто подсмотреть, а где-то и выполнить код, как будто он был написан в программе изначально.
Это не питон, это C меня научил работать с ошибками. Поэтому я их теперь так быстро вижу или же исправляю просто вслепую, применяя приёмы, которые не дают ошибкам спрятаться и прижиться в коде.
tags: debug