Надежная оценка высказываний во время сеанса отладки - PullRequest
0 голосов
/ 17 апреля 2020

Скажем, я установил точку останова для следующего оператора if в своем коде и запустил сеанс отладки в отладчике Python (например, pdb ):

if <statement> and <...>:  <- Current location of debugger in a debugging session
  // Do something

I Вы хотели бы задать отладчику логическое значение, которое <statement> будет использовать из него в выражении if. Как я могу сделать это надежно?

Давайте рассмотрим два сценария ios:

1-й сценарий: <statement> не меняет Python имен или значений

Будет оценка <statement> == True в отладчике возвращает надежно логическое значение, которое отладчик будет использовать для <statement> в приведенном выше if выражении, если мы продолжим выполнение отладчика? Если нет, то какое единственное универсальное выражение (независимо от характера <statement>) будет делать это надежно?

2-й сценарий: <statement> может изменить Python имена или значения

Я подозреваю, что ответ здесь "нет", но есть ли любой способ , чтобы спросить отладчик, какое значение <statement> вернет "безопасно", т.е. без "компрометации" того, что было бы в противном случае «точное выполнение» этого оператора if и любое последующее выполнение кода в течение оставшейся части сеанса отладки?

...