我有以下代碼。父類有一個項目列表,孩子需要添加。如何從父類中擴展列表?
父母的每一個實例都需要擁有這個列表,每個孩子都需要擁有那個列表+額外的值。
class Parent(object):
a_list = ['parent_item1', 'parent_item2', ]
def print_list(self):
print(self.a_list)
class Child1(Parent):
def __init__(self, *args, **kwargs):
super(Child1, self).__init__(*args, **kwargs)
self.a_list += ['child1_item']
class Child2(Parent):
def __init__(self, *args, **kwargs):
super(Child2, self).__init__(*args, **kwargs)
self.a_list += ['child2_item']
parent = Parent()
child1 = Child1()
child2 = Child2()
parent.print_list()
# >> ['parent_item1', 'parent_item2', 'child1_item', 'child2_item']
child1.print_list()
# >> ['parent_item1', 'parent_item2', 'child1_item', 'child2_item']
child2.print_list()
# >> ['parent_item1', 'parent_item2', 'child1_item', 'child2_item']
我怎樣才能得到以下結果?
['parent_item1', 'parent_item2', ]
['parent_item1', 'parent_item2', 'child1_item', ]
['parent_item1', 'parent_item2', 'child2_item', ]
不錯。我不同意'超'不是'簡單和乾淨',雖然。 'super'方法被設計用來取代通過名稱顯式引用父類。這樣,如果更改當前類的繼承樹,'super'會自動解決任何參考問題。 – 2014-10-17 13:59:29