5

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

我正在使用 Python 2.6

4

2 回答 2

-2

在调试器中,在这种情况下,通常您希望“步进”(s) 进入函数,而不是“下一步”(n)。

"Next" 在你正在查看的范围内执行下一行;“step”将您带入下一个范围,在这种情况下为生成器,这听起来像是您想要做的。

于 2010-05-23T18:32:41.103 回答
-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 语句之前粘贴它。

于 2010-05-23T17:48:47.007 回答