Python pdb.set_trace()问题

2018-12-24 11:17:48 +08:00
 dlsea
代码很简单:
import pdb
def sum_nums(n):
s = 0
for i in range(n):
pdb.set_trace()
s += i
print(s)
if __name__ == '__main__':
sum_nums(5)

执行代码:
> /root/1.py(7)sum_nums()
-> s += i
(Pdb) c
0
> /root/1.py(6)sum_nums()
-> pdb.set_trace()
(Pdb) c
1
> /root/1.py(7)sum_nums()
-> s += i
(Pdb) c
3
> /root/1.py(6)sum_nums()
-> pdb.set_trace()
(Pdb) c
6
> /root/1.py(7)sum_nums()
-> s += i
(Pdb) c
10

如果把代码改为:
for i in range(n):
s += i
print(s)
pdb.set_trace()
那么执行后的每一条待执行都是-> for i in range(n):

疑问:
所有待执行的语句不应该都是 -> s += i 吗?为什么还穿插着 -> pdb.set_trace() ?
1543 次点击
所在节点    Python
4 条回复
jdhao
2018-12-24 13:11:25 +08:00
hxse
2018-12-24 21:50:47 +08:00
你贴的代码没有缩进, 看不懂你的意思
dlsea
2018-12-25 20:18:48 +08:00
代码:
import pdb

def sum_nums(n):
s = 0
for i in range(n):
pdb.set_trace()
s += i
print(s)
if __name__ == '__main__':
sum_nums(5)
dlsea
2018-12-25 20:20:22 +08:00
重新输入上面的代码,空格自动被清除了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520383

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX