跳过yield语句

5 投票
2 回答
1562 浏览
提问于 2025-04-15 23:03

在使用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)。

“下一步”是执行你当前看到的代码中的下一行;而“进入”则会让你进入到下一个更深的代码范围,这里指的是生成器,这听起来正是你想要做的事情。

撰写回答