2012-05-11 10 views
10

Sarà il seguente codice:Python: Utilizzo di continuare in una dichiarazione try-finalmente in un ciclo

while True: 
    try: 
     print("waiting for 10 seconds...") 
     continue 
     print("never show this") 
    finally: 
     time.sleep(10) 

stampare sempre il messaggio "in attesa di 10 secondi ...", il sonno per 10 secondi, e farlo in ancora? In altre parole, le istruzioni delle frasi finally vengono eseguite anche quando il ciclo è continue -ed?

+1

Avete provato a farlo funzionare? – srgerg

+1

-1 perché può essere verificato sperimentalmente in trenta secondi –

+4

@AndrewG., Il punto di porre la domanda era in modo che questa informazione fosse più facilmente reperibile. Mi ci sono voluti alcuni minuti per venire con quell'esempio. :) –

risposta

15

Dal python docs: 'sulla via d'uscita'

Quando un ritorno, rompersi o istruzione continue viene eseguita nella suite try di un'istruzione try ... finally, la clausola finally viene eseguita anche una continua la dichiarazione è illegale nella clausola finale. (La ragione è un problema con l'attuale implementazione - questa restrizione potrebbe essere revocata in futuro).