Переступая через отчет о доходности - PullRequest
5 голосов
/ 23 мая 2010

В отладчике Python (pdb) я хочу перешагнуть через оператор yield, но нажатие (n) для следующего приводит меня к месту назначения выхода, т.е. к потребителю генератора.Я хочу перейти к следующей строке, которая выполняется в генераторе.Есть какой-либо способ сделать это?

Я использую Python 2.6

Ответы [ 2 ]

0 голосов
/ 23 мая 2010

В отладчиках, как правило, вы хотите «шагнуть» в функцию в данном случае, а не «next» (n).

«Next» выполняет следующую строку в области видимости, которую вы 'Вы смотрите на;«шаг» переносит вас в следующую область действия, в данном случае это генератор, который звучит как то, что вы хотите сделать.

0 голосов
/ 23 мая 2010

Если ваш отладчик позволяет вам использовать точки останова и изменять значения переменных, когда вы там, это так же просто, как [в псевдокоде]

Set Boolean yieldValue to true;
[breakpoint after that line is executed, you can set yieldValue to false here]
if yieldValue, yield value;

in other words:

bool yieldValue = true;
[breakpoint here]
if(yieldValue) yield value;

Обратите внимание, что вы обычно не можете прикрепить точку останова к пустой строке. Вы должны будете вставить его перед оператором if.

...