Mój kod jest, na dobre i na złe, pełen zmiennych jednoliterowych (to kwestia fizyki, więc te litery są znaczące), a także NumPy, z którymi często wchodzę w interakcje.
Podczas korzystania z debugera Pythona, od czasu do czasu będę chciał patrzeć na wartości, powiedzmy n
. Jednak kiedy trafiam n<enter>
, jest to polecenie PDB dla (n)ext
, które ma wyższy priorytet. print n
działa, patrząc na to, ale jak mogę to ustawić?
eval
?eval('n = 3')
? Może to pomoże :)Odpowiedzi:
Użyj wykrzyknika
!
przed instrukcją, aby ją uruchomić: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)
W docs powiedzieć:
źródło
Możesz użyć średników, więc po prostu umieść przed nim coś innego:
ipdb> print n 2 ipdb> n > 145 <some code here> 146 147 ipdb> 1; n=4 1 ipdb> print n 4
źródło
To nie jest bezpośrednia odpowiedź na twoje pytanie, ale może ci pomóc: PuDB to oparty na konsoli interfejs graficzny dla PDB, który oddziela polecenia od manipulacji zmiennymi zgodnie z projektem.
źródło
Eric IDE, Wing IDE i Spyder, aby wymienić tylko kilka, mają wizualne debugery, które są warte wypróbowania, ponieważ oddzielają wyświetlanie wartości od poleceń.
źródło