Hallo,
Ich habe mal eine kurze Frage zur Vererbung. Kann man eine Methode in einer Klasse auch erweitern? z.B. das man der __init__-Methode bei der Vererbung etwas hinzufügt und dabei das Bestehende unverändert bleibt.
Klassenvererbung
Du kannst in einer vererbten Klasse den Konstruktor der Superklasse explizit aufrufen. Anschließend kannst Du Deine Erweiterungen machen. Folgend ein Codeschnipsel aus einem von wxGlade erzeugten Programmes:
Code: Alles auswählen
class DlgTest(wxFrame):
def __init__(self, *args, **kwds):
wxFrame.__init__(self, *args, **kwds)
...
Die Superklasse ist die Klasse von der abgeleitet (geerbt) wird.
Die abgeleitete Klasse erbt alle Funktionen der Superklasse. Diese Funktionen kannst Du in der abgeleiteten Klasse überschreiben indem Du sie einfach neu anlegst. Dabei kannst Du die Methoden der Superklasse aufrufen.
Einfaches Beispiel:
Die abgeleitete Klasse erbt alle Funktionen der Superklasse. Diese Funktionen kannst Du in der abgeleiteten Klasse überschreiben indem Du sie einfach neu anlegst. Dabei kannst Du die Methoden der Superklasse aufrufen.
Einfaches Beispiel:
Code: Alles auswählen
class A:
def test(self):
print "A"
class B(A):
def test(self):
print "B"
class C(A):
def test(self):
A.test(self)
print "C"
a = A()
b = B()
c = C()
a.test()
b.test()
c.test()
>test.py
A
B
A
C
Siehe auch hier: http://python.sandtner.org/viewtopic.php?t=1836