爲什麼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 2011-01-13 07:35:26
我們試着澄清一下:你希望C爲A和B類型的某些對象設置名稱,稍後調用一些print_a和print_b函數來獲取這些名稱? – kriss 2011-01-13 07:50:24
是的!爲什麼我不能像上面那樣格式化代碼? – Suge 2011-01-13 07:54:04