private Methode überschreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

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
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
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.
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

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
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
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.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Du kannst natürlich einen Trick anwenden und die neue Klasse genauso nennen wie die alte.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten