该list
类型通常在其__init__()
方法内进行列表的实际初始化,因为这是可变类型的约定。__new__()
子类型化不可变类型时,只需要覆盖即可。虽然可以__new__()
在对列表进行子分类时覆盖,但对于您的用例而言,这样做没有多大意义。覆盖比较容易__init__()
:
class MyList(list):
def __init__(self, *args):
list.__init__(self, *args)
self.append('FirstMen')
self.name = 'Westeros'
另请注意,super()
在这种情况下,建议不要使用。您想在list.__init__()
这里打电话,别无其他。