[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.