十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
就第一次会停下来,其他几次应该都不会停下来的
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、虚拟主机、营销软件、网站建设、市中网站维护、网站推广。
首先,for循环的条件是只执行一次,也就是并不是每次yield_test()都会运行,这个函数其实拿到的是一个生成器对象,然后你是在遍历这个迭代器,并没有去重新执行函数,直到生成器全部生成完成后就往函数下面去执行,所以只会触发一次生成器的初始化中断,其他不会停下来。不理解可以参考下面的图片:
Python中可以加断点调试
断点(break point)是指在代码中指定位置,当程序运行到此位置时便中断下来,并让开发者可查看此时各变量的值。
因断点中断的程序并没有结束,可以选择继续执行。
实现断点调试需要 IDE 的支持。下面以 PyCharm 来演示一下
在某一行代码的左侧栏点击,就可以在这行增加断点。现在在 3 个 if 判断的地方都加上断点。
选择 debug,程序开始运行。
输入 a、b 两个值之后,程序就在第一个 if 处中断,并且在工具栏中显示出当前程序中的各种数值。
选择“resume program”,程序就会继续执行,直到遇到下一个断点。
有了断点功能的帮助,调试的时候就方便许多,很容易观察程序运行时的状态。
在断点调试时,还有个经常一起使用的功能就是单步调试。
在程序中断时,选择“Step Over”,会向下执行一行代码后继续中断。
当所处代码行中有函数时,“Step Into”会中断在函数内部,之后将在其中单步执行。对应的,“Step Out”将中断在执行完当前所在函数后的位置。
这些操作在工具栏有快捷按钮,也可通过快捷键操作。
更多Python知识,请关注:Python自学网!!
其中 -m 参数 == module-name
Searches sys.path for the named module and runs the corresponding .py file as a script.
以pdb 就模块 运行xxxx.py
测试test函数 既
pdb.run("test(100,100)");
其中需要函数调用字符串,而不添加双引号则为直接调用函数,
调用run函数后,进入pdb模式 继而s 进入函数内部进行调试
import pdb
在需要添加断点的地方添加 pdb.set_trace()
在eclipse下可以单步调试python的方法:
1、右键单击标尺栏添加断点
2、将鼠标移至需要添加断点的代码行,使用快捷键 Ctrl+F10,在弹出的菜单栏中选择 ”Add Breakpoint” 添加断点。
添加好断点后,选择 Debug As - Python Run 启动调试器,弹出一个对话框,询问是否切换到调试器透视图,单击 Yes,即显示调试模式。
3、调试器透视图
程序调试过程中,常用的几个快捷键如下:
单步跳入 Step Into: F5
单步跳过 Step Over: F6
单步返回 Step Return: F7
重新开始 Resume: F8
在控制台 Console 中,显示出断点之前代码的执行结果。如果要查看某个变量的值,以变量 a 为例,可以手动在控制台中键入一行代码 ”print ‘a is:’, a”,再连续按两次 Enter 键,即显示出变量的值。
PyCharm 作为IDE,断点调试是必须有的功能。否则,我们还真不如用纯编辑器写的快。
【运行】和【调试】前的设置,详见前面的文章,helloword。
1,设置断点
在代码前面,行号的后面,鼠标单击,就可以设置断点。如下:
2,调试 断点
点击那个绿色的甲虫图标(似乎甲虫已经成为debug专用图标了),进行断点调试。
点击后,会运行到第一个断点。会显示该断点之前的变量信息。
点击Step Over 或者按F8,我们继续往下运行,到下一个断点:
补充:
断点的其他操作,和功能,大家可以把鼠标移到相应的按钮上,看一下,试试便知。如下:
总结:
这就是PyCharm的断点功能,还是很简单易用的。
会导致系统位置错误。
在多任务系统下,中断可能在任务执行的任何时间发生,如果一个函数的执行期间被中断后,到重新恢复到断点进行执行的过程中,函数所依赖的环境没有发生改变,那么这个函数就是可重入的,否则就不可重入。
在多任务系统下,中断可能在任务执行的任何时间发生,如果一个函数的执行期间被中断后,到重新恢复到断点进行执行的过程中,函数所依赖的环境没有发生改变,那么这个函数就是可重入的,否则就不可重入。