私のコードは、良くも悪くも、1文字の変数(物理学のものなので、それらの文字は意味があります)と、私が頻繁にやり取りするNumPyのものでいっぱいです。
Pythonデバッガーを使用する場合、たとえば、の値を確認したい場合がありますn
。ただし、をn<enter>
押すと(n)ext
、それがのPDBコマンドであり、優先度が高くなります。 print n
それを見て回避しますが、どうすれば設定できますか?
回答:
!
ステートメントの前に感嘆符を使用して実行します。
python -m pdb test.py
> /home/user/test.py(1)<module>()
-> print('foo')
(Pdb) !n = 77
(Pdb) !n
77
(Pdb) n
foo
> /home/user/test.py(2)<module>()
-> print('bar')
(Pdb)
ドキュメントは言います:
! statement
現在のスタックフレームのコンテキストで(1行の)ステートメントを実行します。ステートメントの最初の単語がデバッガーコマンドに似ていない限り、感嘆符は省略できます。[...]
セミコロンを使用できるので、その前に何か他のものを置くだけです。
ipdb> print n
2
ipdb> n
> 145 <some code here>
146
147
ipdb> 1; n=4
1
ipdb> print n
4
eval
ちょっとやり過ぎですが、やってみましたか?eval('n = 3')
?多分それは助けになります:)