Christian Seiler: (PYTHON) Exception in __init__ - Objekt erzeugt oder nicht?

Beitrag lesen

Hallo Christoph,

Das ist das Eigenwillige daran. Das Objekt ist (bereits) erzeugt, beim Aufruf von __init__() sind andere Methoden, wie oben zu sehen, aufrufbar.
Lustig - nicht?

Naja, "lustig" - es ist zumindest etwas, was man von anderen Programmiersprachen in _dieser_ Form nicht kennt

Wie bitte?

Konstruktoren funktionieren zum Beispiel in C++, Java und PHP exakt genau so: Der Speicherbereich für das Objekt ist schon alloziert und man kann im Konstruktor (unter Python heißt der halt __init__, unter PHP __construct und unter C++/Java so wie die Klasse selbst) bereits Methoden des Objekts aufrufen. Und wenn man in diesen Sprachen dann eine Exception wirft, dann wird das Objekt wieder gelöscht und man muss Exception Handling betreiben, d.h. der Konstruktor "schlägt fehl".

Viele Grüße,
Christian