2012-04-25 8 views
28

Mam następujący kod Pythona:Jak wywołać listę Pythona podczas debugowania?

values = set([1, 2, 3, 4, 5]) 
import pdb 
pdb.set_trace() 

uruchomić skrypt i jestem w powłoce debugowania:

(pdb) list(values) 
*** Error in argument: '(values)' 
(Pdb) 

Jak mogę zadzwonić list(values) w debuggera bez wywoływania własne komendy debuggera za list ?

Odpowiedz

33

Wystarczy print go:

(Pdb) print list(values) 
+2

'' pp' p' i jest krótsza do type =) – okm

+3

p: print, pp: prettyprint –

+0

omg dziękuję! Waliłem w to głową, zauważyłem, że '' 'lista''' zachowuje się inaczej w pdb, ale nie kliknęło to w moją głowę. –

0

Thierry,

Od tej struktury danych jest już sekwencja jest zbędny, aby określić je jako listę. Więc to zadziała dobrze.

(Pdb) print values 

lub

(Pbd) print(values) 

jeśli używasz Python3


Opcjonalnie za miły notowań z nowymi liniami

(Pdb) for x in values: print x 

lub

(Pdb) for x in values: print(x) 

dla Python3

+0

Ale to nie jest "lista", to jest "zestaw". – jamylak

+0

poprawiony, który zauważył mój błąd podczas pisania – dc5553

+0

"Zestaw" nie jest 'tablicą' ... nadal myślisz o' liście' – jamylak

20

Korzystanie z wykrzyknikiem! uciec poleceń debugera:

(Pdb) values = set([1, 2, 3, 4, 5]) 
(Pdb) list(values) 
*** Error in argument: '(values)' 
(Pdb) !list(values) 
[1, 2, 3, 4, 5] 
Powiązane problemy