Kode saya, baik atau buruk, penuh dengan variabel huruf tunggal (ini hal fisika, jadi huruf-huruf itu bermakna), serta NumPy, yang sering saya gunakan untuk berinteraksi.
Saat menggunakan debugger Python, terkadang saya ingin melihat nilai, katakanlah n
,. Namun, ketika saya menekan n<enter>
, itulah perintah PDB untuk (n)ext
, yang memiliki prioritas lebih tinggi. print n
bekerja sambil melihatnya, tetapi bagaimana saya bisa mengaturnya?
eval
?eval('n = 3')
? Mungkin membantu :)Jawaban:
Gunakan tanda seru
!
sebelum pernyataan untuk menjalankannya: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)
The docs mengatakan:
sumber
Anda dapat menggunakan titik koma, jadi taruh saja yang lain di depannya:
ipdb> print n 2 ipdb> n > 145 <some code here> 146 147 ipdb> 1; n=4 1 ipdb> print n 4
sumber
Itu bukanlah jawaban langsung untuk pertanyaan Anda, tetapi dapat membantu Anda: PuDB adalah antarmuka visual berbasis konsol untuk PDB yang memisahkan perintah dari manipulasi variabel berdasarkan desain.
sumber
Eric IDE, Wing IDE & Spyder untuk menyebutkan hanya beberapa yang semuanya memiliki debugger visual yang layak untuk digunakan karena mereka memisahkan tampilan nilai dari perintah.
sumber