Как я могу заставить PyCharm сломаться, когда переменная принимает определенное значение?

У меня большой словарь, и некоторые элементы иногда имеют недопустимые значения. Я хочу выяснить, откуда берутся недопустимые значения. PyCharm должен постоянно контролировать значения моего словаря, и в тот момент, когда какое-либо из них принимает недопустимое значение, он должен сломаться и позволить мне проверить состояние программы.

Я знаю, что могу сделать это, просто создав геттер / сеттер для своего словаря вместо прямого доступа к нему, а затем прервав работу внутри сеттера с соответствующим условием.

Есть ли способ сделать это без изменения моего кода?


person Superbest    schedule 07.04.2017    source источник
comment
Отвечает ли это на ваш вопрос? Остановитесь на строке, где изменяется переменная   -  person Piotr Dobrogost    schedule 07.04.2020


Ответы (1)


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

Примером такого состояния может быть:

x > 5

Как только вы окажетесь на той стадии цикла / кода, где это условие истинно, т.е. когда x = 6, оно сломается, и вы сможете проверить все текущие значения / статус вашего кода.

Надеюсь это поможет

person dodgerstjw    schedule 25.07.2017
comment
Есть ли способ сделать это без изменения моего кода? - person Superbest; 26.07.2017
comment
вам не нужно изменять свой код, просто нажмите на точку останова, pycharm покажет меню. - person Nithin; 10.03.2019
comment
Проблема в том, что нет строки для установки точки останова, поскольку OP не уверен, где и когда устанавливаются значения - Я хочу выяснить, откуда берутся недопустимые значения. Для сравнения возьмите взгляните на следующее описание этой функции из документации gdb - Вы можете использовать точку наблюдения, чтобы останавливать выполнение всякий раз, когда значение выражения изменяется, без необходимости предсказывать конкретное место, где это может произойти. (Иногда это называют точкой останова по данным.) - person Piotr Dobrogost; 07.04.2020