vermutlich übersehe ich eine ganz dumme Kleinigkeit.
Wenn ich eine Instanz meiner abgeleiteten Exception erzeugen möchte, die bei ihrer Initialisierung eine Funktion aufruft, welche es unter demselben Namen in der Basisklasse bereits gibt, dann ruft die Basisklasse scheinbar diese Funktion in der abgeleiteten Klasse auf. Ich dachte immer, dass die Namensräume zumindest soweit abgeschlossen sind, dass die Basisklasse nicht die Funktion der Kinderklasse aufrufen kann. Hier der Code:
Code: Alles auswählen
class BaseException:
def __init__(self, s=""):
self._init_superclass()
def _init_superclass(self):
print "Initialisierung der Basisklasse"
class DerivedException(BaseException):
def __init__(self, s=""):
self._init_superclass()
def _init_superclass(self):
BaseException.__init__(self)
DE = DerivedException()
Kennt wer mein Problem?...
File "C:\Python24\quicktest38.py", line 13, in _init_superclass
BaseException.__init__(self)
File "C:\Python24\quicktest38.py", line 3, in __init__
self._init_superclass()
File "C:\Python24\quicktest38.py", line 13, in _init_superclass
BaseException.__init__(self)
File "C:\Python24\quicktest38.py", line 3, in __init__
self._init_superclass()
File "C:\Python24\quicktest38.py", line 13, in _init_superclass
BaseException.__init__(self)
RuntimeError: maximum recursion depth exceeded
Vielen Dank schonmal,
Michael