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分,所以我根本無法評論任何用戶的問題,但只能是我自己的問題。感謝您的回覆。 –