Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 跳过收益率报表_Python_Generator_Pdb - Fatal编程技术网

Python 跳过收益率报表

Python 跳过收益率报表,python,generator,pdb,Python,Generator,Pdb,在Python调试器(pdb)中,我希望跳过yield语句,但点击(n)for next会将我带到yield的目标,即生成器的使用者。我想转到生成器中执行的下一行。有没有办法做到这一点 我使用的是Python2.6如果调试器允许您在调试器中使用断点并更改变量值,那么它就像[在伪代码中]一样简单 Set Boolean yieldValue to true; [breakpoint after that line is executed, you can set yieldValue to fal

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


我使用的是Python2.6

如果调试器允许您在调试器中使用断点并更改变量值,那么它就像[在伪代码中]一样简单

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语句之前。

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


“Next”执行您正在查看的范围中的下一行;“步骤”将您带入下一个范围,即本例中的生成器,这听起来像您想要做的事情。

这听起来确实像下一步应该做的事情。(从生成器的角度来看,
yield
是一个函数调用,应该被
next
跳过)这听起来像是一个调试器bug;您可能想看看是否在中报告了。虽然我可以理解为什么这里要求的行为可能是可取的,但我可以看到一个同样好的论点,即在调试器中执行一个步骤不应该冒跳出调试循环并无限期运行的风险。(例如,如果发电机不再被调用)。对我来说,这听起来像是一个断点的工作。(或者一个新的调试器命令。)可能是No的重复,他说在生成器中,他想跨过一个屈服点,然后降落在它后面的行上,这正是“next”应该做的。(“每15秒1条评论,计时器重置”?呃,任何认为这是个好主意的人都需要被枪毙…)