rotalever
2007-12-22, 22:19:58
Guten Abend!
Ich hab mal wieder ein Problem und konnte mit Google nichts finden. Wenn ich bei Python eine Klasse erstelle und einen Konstruktor habe und der Konstruktor merkt, dass eine der übergebenen Variablen falsch ist, dann soll das Objekt nicht erzeugt werden. Ich hatte gedacht, es ginge vielleicht so:
class tannenbaum:
def __init__ (self, kerzen):
if kerzen == 0:
return None
self.kerzen = kerzen
o = tannenbaum (0)
if o == None:
print "Fehler."
Aber hier wird natürlich kein Fehler ausgegeben, da auch kein "None" zurückgegeben wird, da ein return im Konstruktor anscheined wertlos ist, da ja immer ein Objekt zurückgegeben wird.
Also, wie informiere ich das Hauptprogramm, dass kein Tannenbaum erstellt werden kann? "return False" würde natürlich eine exception ergeben, die ich dann wiederrum im Hauptprogramm mit try abfangen könnte und somit informiert wäre, aber das ist ein wenig blöd.
Ich hab mal wieder ein Problem und konnte mit Google nichts finden. Wenn ich bei Python eine Klasse erstelle und einen Konstruktor habe und der Konstruktor merkt, dass eine der übergebenen Variablen falsch ist, dann soll das Objekt nicht erzeugt werden. Ich hatte gedacht, es ginge vielleicht so:
class tannenbaum:
def __init__ (self, kerzen):
if kerzen == 0:
return None
self.kerzen = kerzen
o = tannenbaum (0)
if o == None:
print "Fehler."
Aber hier wird natürlich kein Fehler ausgegeben, da auch kein "None" zurückgegeben wird, da ein return im Konstruktor anscheined wertlos ist, da ja immer ein Objekt zurückgegeben wird.
Also, wie informiere ich das Hauptprogramm, dass kein Tannenbaum erstellt werden kann? "return False" würde natürlich eine exception ergeben, die ich dann wiederrum im Hauptprogramm mit try abfangen könnte und somit informiert wäre, aber das ist ein wenig blöd.