[Python-de] Überladen von Methoden
Andreas Pakulat
apaku at gmx.de
Don Feb 17 00:03:58 CET 2005
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
--
Bank error in your favor. Collect $200.