Veraltete Buchbeschreibung der Try-Except-Finally-Anweisung

8

Ich folge Apress, Beginning Python from Novice to Professional book. Es wird erwähnt, dass:

  

endlich. Sie können versuchen / schließlich, wenn Sie sicherstellen müssen, dass einige   Code (z. B. Bereinigungscode) wird unabhängig davon ausgeführt, ob ein   Ausnahme wird ausgelöst oder nicht. Dieser Code wird dann endgültig eingefügt   Klausel. Beachten Sie, dass Sie nicht beide except-Klauseln und a endlich haben können   Klausel in der gleichen try-Anweisung - aber Sie können eine in die andere setzen.

Ich habe diesen Code ausprobiert:

%Vor%

... und die Ausgabe ist

%Vor%

Hier habe ich except und finally im selben try Segment benutzt, nicht wahr? Und der Code funktioniert wie erwartet. Ich kann nicht ganz verstehen, was das Buch sagt!

Jemand bitte klarstellen. Danke.

    
bdhar 23.09.2011, 05:37
quelle

4 Antworten

14

Dies wurde seit Python 2.5 behoben und ist in der Dokumentation

Mit anderen Worten, Ihr Buch ist falsch / veraltet

    
Andrew Walker 23.09.2011, 05:41
quelle
6

Ich glaube, das Buch gibt tatsächlich das Beispiel selbst, daher weiß ich nicht, was er damit genau gemeint hat. Wie die vorherige Antwort angemerkt hat, wurde dies in Python 2.5 so geändert, dass

%Vor%

Entspricht

%Vor%     
Tehnix 23.09.2011 05:45
quelle
1

Dieses Buch könnte falsch sein, fürchte ich, wie die Python-Dokumentation verwendet alle drei. Vielleicht ist es Zeit, ein neues Buch zu bekommen?

    
Blender 23.09.2011 05:42
quelle
0

Bis python 2.4 war es nicht erlaubt, endlich mit except oder else zu kombinieren. Aber seit Python 2.5 unterstützt es wie andere objektorientierte Programmiersprachen das Kombinieren außer Blöcken und einen finally-Block. Lesen Sie die neueste Python-Dokumentation

    
Rohit Goyal 23.05.2015 19:49
quelle