1
pdb的display
命令似乎只在分配整个变量时才显示表达式。python3 pdb显示列表
pass
foo = [1, 2, 3]
foo[0] = 8
foo.append(7)
pass
与python3 -m pdb bar.py
运行上述代码时,然后输入我display foo
得到的输出是:
> bar.py(2)<module>()
-> foo = [1, 2, 3]
(Pdb) display foo
display foo: ** raised NameError: name 'foo' is not defined **
(Pdb) n
> bar.py(3)<module>()
-> foo[0] = 8
display foo: [1, 2, 3] [old: ** raised NameError: name 'foo' is not defined **]
(Pdb)
> bar.py(4)<module>()
-> foo.append(7)
(Pdb)
> bar.py(5)<module>()
-> pass
(Pdb) foo
[8, 2, 3, 7]
(Pdb)
的NameError和显示器的第一输出的预期。 然而,看起来显示不出现foo
更改时,其第一项改变或当我们附加7.
有没有办法告诉pdb列出这些更改? 看来,display str(foo)
做的工作,但我想知道是否有更好的解决方案。
感谢您的评论,但它并没有完全回答我的问题。打印会打印foo的内容,即使它没有改变,我也不想这么做。 – jbl
哦,我明白了......是的,你说的没错。如果有更好的东西出现,我会发表评论。对于回复而不是评论 - 我的声誉现在只有18分,所以我根本无法评论任何用户的问题,但只能是我自己的问题。感谢您的回复。 –