跳过yield语句
在使用Python调试器(pdb)的时候,我想跳过一个yield语句,但按下(n)键后却直接跳到了yield的“目的地”,也就是生成器的消费者那里。我想要的是跳到生成器内部的下一行代码。有没有什么办法可以做到这一点呢?
我正在使用Python 2.6
2 个回答
-2
如果你的调试工具可以让你使用断点,并在那时更改变量的值,那就简单得像下面的伪代码一样:
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语句之前设置断点。
-2
在调试工具中,通常你会想要选择“进入”(s)一个函数,而不是“下一步”(n)。
“下一步”是执行你当前看到的代码中的下一行;而“进入”则会让你进入到下一个更深的代码范围,这里指的是生成器,这听起来正是你想要做的事情。