ich erbe derzeit von einer Vaterklasse, welche folgendermaßen aufgebaut ist:
Code: Alles auswählen
class Player(pygame.sprite.Sprite):
sprites_left = []
def __init__(self,bild):
pygame.sprite.Sprite.__init__(self)
self.sprites_left.append(bild)
class A(Player,pygame.sprite.Sprite):
def __init__(self,bild1):
Player.__init__(self,bild1))
def output(self):
#obligatorische Ausgabe:
print(self.sprites_left[0])
class B(Player,pygame.sprite.Sprite):
def __init__(self,bild2):
Player.__init__(self,bild2))
def output(self):
#obligatorische Ausgabe:
print(self.sprites_left[0])
a = A()
b = B()
a.output()
b.output()
Das ganze ist natürlich rein obligatorisch geschrieben, aber das Problem sollte ersichtlich sein.
Weshalb überschreibt b = B() denn das Bild von A? Hat das hier bei Sprites etwas mit Referenzen zu tun? Wieso ist dies nicht komplett unabhängig voneinander? Ich erbe jeweils von beiden Klassen (A,B) von meiner Hauptklasse Player und würde gerne die Sprites in der Hautpklasse erstellen, sodass ich keinen doppelten Code in class A und class B habe, jedoch überschreibt die letzte Initialisierung (hier b=B() ) die vorangegangene Initialisierung a=A()) - Weshalb aber?
Lg