问题描述
我在 JupyterLab 中运行了以下代码:
import pdb; pdb.set_trace()
def cute_function(n):
a = 0
b = 1
c = 7
m = 1
d = 1
k = 2
l = 10
p = 7
for i in range(n):
# breakpoint()
print(a,b,c,d)
a = a + 1
b = b + b
x = k / d
x = d + x
d = x / k
c = m * l
m = c % p
c = c // p
return (a,d)
cute_function(10)
cute_function(100)
然后我进行交互调试:
--Return--
None
> <ipython-input-1-d9984dfe3110>(1)<module>()
----> 1 import pdb; pdb.set_trace()
2 def cute_function(n):
3 a = 0
4 b = 1
5 c = 7
ipdb> b 13
Breakpoint 1 at <ipython-input-1-d9984dfe3110>:13
ipdb> c
> <ipython-input-1-d9984dfe3110>(13)cute_function()
11 for i in range(n):
12 # breakpoint()
1--> 13 print(a,d)
14 a = a + 1
15 b = b + b
ipdb> display a
display a: 0
ipdb> b cute_function
Breakpoint 2 at <ipython-input-1-d9984dfe3110>:2
ipdb> c
0 1 7 1
> <ipython-input-1-d9984dfe3110>(14)cute_function()
12 # breakpoint()
1 13 print(a,d)
---> 14 a = a + 1
15 b = b + b
16 x = k / d
ipdb> undisplay a
ipdb> b
Num Type disp Enb Where
1 breakpoint keep yes at <ipython-input-1-d9984dfe3110>:13
breakpoint already hit 1 time
2 breakpoint keep yes at <ipython-input-1-d9984dfe3110>:2
breakpoint already hit 1 time
ipdb> c
> <ipython-input-1-d9984dfe3110>(13)cute_function()
11 for i in range(n):
12 # breakpoint()
1--> 13 print(a,d)
14 a = a + 1
15 b = b + b
ipdb> c
1 2 1 1.5
> <ipython-input-1-d9984dfe3110>(14)cute_function()
12 # breakpoint()
1 13 print(a,d)
---> 14 a = a + 1
15 b = b + b
16 x = k / d
ipdb> c
> <ipython-input-1-d9984dfe3110>(13)cute_function()
11 for i in range(n):
12 # breakpoint()
1--> 13 print(a,d)
14 a = a + 1
15 b = b + b
ipdb> c
2 4 4 1.4166666666666665
> <ipython-input-1-d9984dfe3110>(14)cute_function()
12 # breakpoint()
1 13 print(a,d)
---> 14 a = a + 1
15 b = b + b
16 x = k / d
ipdb> b
Num Type disp Enb Where
1 breakpoint keep yes at <ipython-input-1-d9984dfe3110>:13
breakpoint already hit 3 times
2 breakpoint keep yes at <ipython-input-1-d9984dfe3110>:2
breakpoint already hit 3 times
ipdb>
令我惊讶的是,即使没有断点,代码也总是停在第 14 行。看起来好像断点 2 被移到了第 14 行,因为命中数一直在增加。
在我看来,这是由“display”命令引起的,因为删除 display 命令解决了问题。
我的 Python 版本是 3.9.4,我的 JupyterLab 版本是 3.0.14。我使用的是 MacBook Pro 2017,macOS Big Sur v11.4。
编辑:当我使用默认的 python 3.7.0 IDLE 时也会发生这种情况,所以这与 JupyterLab 无关。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)