
Hallo Christian, On Wednesday 16 February 2005 19:47, 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?
wie andere schon geschrieben haben, ist es in der Praxis normalerweise kein Problem.
Übergebt ihr einfach None, wenn ein Parameter leer ist? Bei normalen Methoden könnte man ja noch auf zwei Methoden mit unterschiedlichen Namen ausweichen, aber spätestens bei einem Constructor geht das nicht mehr.
Mirko hatte die Übergabe einer Liste vorgeschlagen. Eine Variante ist die Übergabe mittels *args und **kwargs: def methode(self, *args, **kwargs): # args ist eine Liste, kwargs ein Dictionary, aber der Aufrufer # muss keine Liste oder ein Dictionary übergeben, sondern kann # beliebige Positions- (positional arguments) oder # Schlüsselwort-Argumente (keyword arguments) verwenden ... Aber auch das ist nur selten eine elegante Lösung. Erkläre uns bitte die Situation, in der du das Überladen von Methoden vermisst. Wahrscheinlich gibt es eine einfache Problemlösung in Python, die ohne das Überladen auskommt. Wir versuchen, die dann zu finden. :-) Viele Grüße Stefan _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de