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