1
cyrbuzz 2021-06-18 19:56:12 +08:00
是我没 Get 到什么点吗,断点打在函数内不就好了吗= =。
|
2
JerningChan 2021-06-18 20:44:54 +08:00 via Android
嗯,为什么要断在 def 那一行呢?
|
3
dgfadsrawdfaer OP @cyrbuzz 抱歉,没有讲清楚,不影响使用,就是无意中发现了这个现象,觉得特别奇怪,想了解清楚是什么情况。
|
4
dgfadsrawdfaer OP @JerningChan 抱歉,没有讲清楚,不影响使用,就是无意中发现了这个现象,觉得特别奇怪,想了解清楚是什么情况。
|
5
nifury 2021-06-18 22:04:07 +08:00
因为 def 那一行并不会真正执行吧
同理如果你断点打在一个空行上,或者打在注释上,断点也不会触发 |
6
dgfadsrawdfaer OP @nifury 嗯嗯原来是这样,不过请问一下为什么 debug 会把后面的代码也一起运行了呢(相当于使用了 Run,而不是 Debug ),不是应该可以让我一步步手动操作吗?
|
7
nifury 2021-06-18 22:14:08 +08:00
@dgfadsrawdfaer #6 默认 debug 就是运行到断点停下来呀,没有断点的话可不就运行到结束了嘛。另外 debug 下遇到异常会自动中断,这也是和直接 run 不一样的地方
如果要一步步操作的话可以用 python -m pdb your_script.py |
8
dgfadsrawdfaer OP @nifury 噢噢明白了,非常感谢你!
|
9
marquina 2021-06-19 00:27:06 +08:00 via Android
因为 def 只是告诉解释器有这个函数存在,不会有“代码运行到 def 这一行”这个说法
|
10
ericls 2021-06-19 03:53:27 +08:00
def 在 import 的时候运行
|
11
param 2021-06-19 07:03:43 +08:00 via Android
打到 def 那行,估计是会在函数被 define 的时候断点?而不是函数执行时
|
12
baobao1270 2021-06-19 09:31:58 +08:00
断点是运行在当前行执行前吧
所以你要打在 def 后面一行,也就是函数的第一行 |
13
QuinceyWu 2021-06-19 11:44:27 +08:00
在 def 后面一行打断点
|