Warum gibt c.print_a() 'B' aus?Mehrfaches Vererbungsproblem in Python!
class A(object):
def __init__(self):
self.some_name = 'A'
def print_a(self):
print self.some_name
class B(object):
def __init__(self):
self.some_name = 'B'
def print_b(self):
print self.some_name
class C(A, B):
def __init__(self):
A.__init__(self)
B.__init__(self)
if __name__ == '__main__':
c = C()
c.print_a()
class A(object):
def __init__(self, some_name='A'):
self.some_name = some_name
def print_a(self):
print self.some_name
class B(object):
def __init__(self, some_name='B'):
self.some_name = some_name
def print_b(self):
print self.some_name
class C(A, B):
def __init__(self):
A.__init__(self, some_name='AAAAA')
B.__init__(self, some_name='BBBBB')
if __name__ == '__main__':
c = C()
c.print_a()
Vielen Dank für Ihre Bearbeitung! – Suge
Lassen Sie uns versuchen zu verdeutlichen: Sie wollen, dass C Namen für einige Objekte der Typen A und B setzt und später beim Aufruf einiger print_a und print_b Funktionen diese Namen zurückbekommt? – kriss
Ja! Warum konnte ich den Code nicht wie oben beschrieben formatieren? – Suge