2009-10-28 3 views

risposta

0

Sembra funzionare, ma IPython pensa che sia il programma principale. Quindi, dopo aver istanziato IPShell, un crash mostra "whoops, IPython si è bloccato".

import IPython.Shell 
ipshell = IPython.Shell.IPShell(argv=[], user_ns={'root':root}) 
ipshell.mainloop() 
1

di lista vanno bene, questo funziona:

[bar() for i in range(10)] 

espressioni generatore di esso (che è quello che avete passato a quella list() chiamata) che non sono bene:

gexpr = (bar() for i in range(10)) 
list(gexpr) 

La differenza : gli elementi nella comprensione della lista vengono valutati al momento della definizione. Gli elementi nell'espressione del generatore vengono valutati quando viene chiamato next() (ad esempio tramite iterazione quando lo si passa a list()), quindi deve mantenere un riferimento all'ambito in cui è definito. Tale riferimento allo scopo sembra essere gestito in modo errato; molto probabilmente questo è semplicemente un bug IPython.

Problemi correlati