なぜc.print_a()は 'B'を出力しますか?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()
感謝を! – Suge
明示しようとしましょう:タイプAとBのオブジェクトの名前をCに設定し、後でprint_aとprint_b関数を呼び出すとこれらの名前が返されるようにしますか? – kriss
はい!上記のようにコードを整形できないのはなぜですか? – Suge