Seite 1 von 1

private Methode überschreiben

Verfasst: Sonntag 7. Oktober 2007, 18:58
von Twilo
Hallo,

ich möchte in etwa soetwas

Code: Alles auswählen

  def __methodenname(self, source):
    ELTERNKLASSE.__methodenname(self, source)
    ....
ich möchte, dass __methodenname noch zusätzlciher Code ausgeführt wird

meine Methode wird jedoch nicht aufgerufen, sondern nur die der Elternklasse

wenn ich die Methode wie folgt definiere "def _ELTERNKLASSE__methodenname(...):" kann ich die Methode zwar überschreiben, habe jedoch das Problem, dass ich auch alle Methoden in meiner Klasse implementieren muss, die die private Methode aufruft.

wie kann bzw. muss ich die Methode richtig erstellen?

mfg
Twilo

Verfasst: Sonntag 7. Oktober 2007, 19:18
von BlackJack
Der doppelte führende Unterstrich ist für Attribute, die in Unterklassen ganz bestimmt nicht gebraucht werden. Wenn Du sie doch brauchst, dann lass einfach einen Unterstrich weg.

Verfasst: Montag 8. Oktober 2007, 08:37
von Twilo
Hallo,
BlackJack hat geschrieben:Wenn Du sie doch brauchst, dann lass einfach einen Unterstrich weg.
Die Elternklasse habe ich nicht entworfen bzw. erstellt.

Heisst das, dass ich keine Möglichkeit habe, die Methode zu überschreiben?

mfg
Twilo

Verfasst: Montag 8. Oktober 2007, 10:03
von BlackJack
Sieht schlecht aus. Der Mechanismus ist ja wie gesagt gerade dazu da um versehentliches Überschreiben zu verhindern.

Am besten mal den Autor der Basisklasse fragen was er sich denn dabei gedacht hat.

Verfasst: Montag 8. Oktober 2007, 15:32
von birkenfeld
Du kannst natürlich einen Trick anwenden und die neue Klasse genauso nennen wie die alte.