Ich habe irgendwie besonders Mühe mit Klassen =/. Ich hab also zum x-ten mal das Tutorial darüber gelesen, und verstehe nun schon etwas besser, wann self. kommt usw.
Ich komm aber irgendwie nicht weiter mit dem "erben" (mal naiv direkt übersetzt ^^).... Die Idee dahinter verstehe ich zwar, aber praktisch klappts irgendwie nicht ganz =).
Hier ein kleines Script, wo ich Klassen und deren Funktionen auf verschiedene Arten definiere / aufrufe (mir ist bewusst, dass man eine Funktion nie ausserhalb der eigenen Klasse definieren sollte, aber es ging mir nur ums Verständnis, wie es gehen würde):
Code: Alles auswählen
def second(self):
print self.y
class Bass_Class:
def __init__(self, x, y):
self.x = x
self.y = y
def first(self):
print self.x
second = second
class First_Derived_Class(Bass_Class):
def __init__(self, z):
self.z = z
def third(self):
print self.z
def fourth(self):
Bass_Class.__init__(self, "Hi, fourth #1", "Hi, fourth #2")
print self.x
print self.y
class Second_Derived_Class(Bass_Class):
def __init__(self, x, y, v):
Bass_Class.__init__(self, x, y)
self.v = v
self.args = (x, y, v)
def fifth(self):
for i in self.args:
print i
b = Bass_Class("Hi, this is the first message", "This is the second")
d = First_Derived_Class("And this is the third")
s = Second_Derived_Class("Hi, this is the first message again", "This is the second again", "This is the fifth")
b.first()
b.second()
d.third()
d.fourth()
s.first()
s.fifth()
1. Wenn ich die Bass_Class.__init__() in der First_Derived_Class aufrufe (Zeile 18), muss ich x und y wieder "definieren". Wie kann ich machen, dass eben das x und y nur einmal definieren muss, und diese Zuordnung dann eben geerbt wird? =/
[EDIT... hab mir Frage 2 gerade selbst beantwortet^^]
Danke für ein bisschen Hilfe & Kritik =).
lg Seeker
PS: entschuldigt die leicht chaotischen Variabelnamen... :/