1

我来自 ruby​​,您可以在其中使用binding.pry和 donext转到下一行或step进入方法内部。python有没有等价物?我找到了这个代码片段:

import code; code.interact(local=dict(globals(), **locals()))

检查放置它的行效果很好,但我希望能够观察代码是如何逐行执行的,并随时检查它。有没有办法指示它从交互式控制台转到下一行?我也想whereami告诉我我在哪一行,因为有时我放了很多code.interact,我不知道我在哪一行。

4

1 回答 1

0

pdb是 Python 的调试器,具有您正在寻找的许多功能。Python 3.7 包括 breakpoint()从您调用它的任何位置进入调试器,甚至无需导入pdb

编辑:刚刚注意到标题的变化。您将需要在 3.6中使用和添加的banner参数。您可以在代码中创建多个点并为每个点命名,这样您就可以准确地知道您在代码中的位置。code.interactexitmsg

例如:

for i in range(0, 5):
    code.interact(banner="in for loop", local=locals(), exitmsg="out of for loop")
    print(i)

会产生类似的东西

in for loop
>>> ^Z

out of for loop
0
in for loop
>>> ^Z

out of for loop
1
in for loop
>>> ^Z

out of for loop
2
in for loop
>>> ^Z

out of for loop
3
in for loop
>>> ^Z

out of for loop
4

取决于你决定做什么。

于 2020-06-10T00:59:10.377 回答