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