[Python-de] Überladen von Methoden

Mirko T. brainerror at gmx.net
Mit Feb 16 20:49:09 CET 2005


> wie ich gerade mit Entsetzen feststellen musste, kann man in Python gar
> keine Methoden überladen! Wie umgeht man diese Schwäche am elegantesten?

Schwäche? Also, ich brauch das bei Python nie... da es keine
Typsicherheit gibt, wohl auch besser so.

Wenn man es _wirklich_ mal benötigt (also wohl eher nie, siehe auch die
anderen Antworten), könnte man z.B. der Methode als Argument eine Liste
oder einen Tupel übergeben, und anschließend mit "if...elif...else"
abfragen was für eine Liste/Tupel das ist bzw. was sie enthält, und dann
entsprechend behandeln:

def tralala(liste):
    if len(liste)==4: ...
    elif len(liste)>2 and type(liste[2])==type(1): ...

Nicht sehr schön, aber wer das unbedingt braucht...

Ciao,

Mirko