2012-05-11 21 views
10

będzie następujący kod:Python: Użycie dalej w instrukcji try-w końcu w pętli

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

Zawsze wydrukować komunikat „Oczekiwanie na 10 sekund ...”, spać przez 10 sekund, i to zrobić jeszcze raz? Innymi słowy, czy instrukcje w klauzulach finally działają nawet, gdy pętla jest continue -ed?

+1

Czy próbowałeś uruchomić go? – srgerg

+1

-1, ponieważ można ją zweryfikować eksperymentalnie w trzydzieści sekund –

+4

@AndrewG., Kwestia postawienia pytania była taka, aby ta informacja była łatwiejsza do znalezienia. Zajęło mi to kilka minut, aby wymyślić ten przykład. :) –

Odpowiedz

15

Od python docs:. „Na drodze”

Podczas powrotu, break lub continue jest wykonywana w apartamencie try try ... finally, klauzula finally jest również wykonywany continue oświadczenie jest niezgodne z prawem w klauzuli finally. (Powodem jest problem z bieżącą implementacją - to ograniczenie może zostać zniesione w przyszłości).