
Andreas Pakulat schrieb:
On 16.Feb 2005 - 19:47:54, Christian Helmbold wrote:
wie ich gerade mit Entsetzen feststellen musste, kann man in Python gar keine Methoden überladen! Wie umgeht man diese Schwäche am elegantesten? Übergebt ihr einfach None, wenn ein Parameter leer ist? Bei normalen Methoden könnte man ja noch auf zwei Methoden mit unterschiedlichen Namen ausweichen,
Neben den anderen Antworten, die alle korrekt sind, möchte ich dich noch auf etwas hinweisen (was auch ich erst nach einiger Zeit mit Python mitbekommen habe):
aber spätestens bei einem Constructor geht das nicht mehr.
Es gibt keine Konstruktoren in Python, die __init__ Methode ist kein Konstruktor, sondern sie erzeugt z.B. Instanzvariablen. Ein Konstruktor in C++ oder Java ist etwas das aus dem Nichts eine Instanz erzeugt, wie man aber an der Signatur von _init__ sehen kann ( __init__(*self*): ) existiert die Instanz beim Aufruf der Funktion schon.
Andreas
Seit Einführung der New Style Classes (Python-2.2) gibt es sehr wohl echte Konstruktoren: __new__(cls, ...) Siehe: http://www.python.org/2.2.3/descrintro.html#__new__ Ulli _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de