在Python调试器(pdb)中,我想要跳过yield语句,但是下一步(n)将我带到yield的 destination ,即生成器的使用者。我想转到生成器中执行的下一行。有没有办法做到这一点?
我正在使用Python 2.6
答案 0 :(得分:-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语句之前坚持下去。
答案 1 :(得分:-2)
在调试器中,通常你想在这种情况下“步入”一个函数,而不是“下一个”(n)。
“下一步”执行您正在查看的范围中的下一行; “step”会带你进入下一个范围,在这种情况下是生成器,听起来就像你想做的那样。