踩过收益率声明

时间:2010-05-23 17:44:41

标签: python generator pdb

在Python调试器(pdb)中,我想要跳过yield语句,但是下一步(n)将我带到yield的 destination ,即生成器的使用者。我想转到生成器中执行的下一行。有没有办法做到这一点?

我正在使用Python 2.6

2 个答案:

答案 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”会带你进入下一个范围,在这种情况下是生成器,听起来就像你想做的那样。