问题描述
我习惯于使用 PyCharm 在 Python 中进行调试。
现在我正在尝试将 ipdb 与 Jupyter(准确地说是实验室)一起使用。
但是下面的两种行为真的让我很困惑!
第一个
breakpoint()
for i in range(3):
print(i)
然后在调试器中:
--Return--
None
> <ipython-input-10-45409e3598c5>(1)<module>()
----> 1 breakpoint()
2 for i in range(3):
3 print(i)
ipdb> n
[... skipped 1 hidden frame]
[... skipped 1 hidden frame]
[... skipped 1 hidden frame]
[... skipped 1 hidden frame]
> c:\users\icar\anaconda3\envs\jlab3\lib\site-packages\ipython\core\interactiveshell.py(3349)run_ast_nodes()
3347 to_run.append((node,'single'))
3348
-> 3349 for node,mode in to_run:
3350 if mode == 'exec':
3351 mod = Module([node],[])
为什么 ipdb next 使 ipdb 在 run_ast_nodes 中停止?
它不应该等同于跨过吗?
第二个
for i in range(3):
breakpoint()
print(i)
然后在调试器中:
None
> <ipython-input-9-2b8431878fa0>(3)<module>()
1 for i in range(3):
2 breakpoint()
----> 3 print(i)
ipdb> c
0
None
> <ipython-input-9-2b8431878fa0>(2)<module>()
1 for i in range(3):
----> 2 breakpoint()
3 print(i)
ipdb> c
1
None
> <ipython-input-9-2b8431878fa0>(3)<module>()
1 for i in range(3):
2 breakpoint()
----> 3 print(i)
什么可以解释 ipdb continue 交替停在第 3 行,然后是第 2 行,然后是第 3 行?
我想我错过了一些东西,但我无法得到它,这只是基本的东西......
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)