关于python中__init__魔法方法与定制容器的问题

代码:

class List1(list):
    def __init__(self,value=None):
        self.list1=value
        self.count=[]
        for each in self.list1:
            self.count.append(0)
    def __len__(self):
        return len(self.list1)
    def __getitem__(self,keys):
        self.count[keys]+=1
        return super().__getitem__(keys)
    def __setitem__(self,keys,setvalue):
        self.list1.insert(keys,setvalue)
        self.count.insert(keys,0)
        print("将%s加到列表%s处" % (setvalue,keys))

输出

图片说明

是一个空列表

但是如果没有设置父类是list

class List1:
    def __init__(self,value=None):
        self.list1=value
        self.count=[]
        for each in self.list1:
            self.count.append(0)
    def __len__(self):
        return len(self.list1)
    def __getitem__(self,keys):
        self.count[keys]+=1
        return self.list1[keys]
    def __setitem__(self,keys,setvalue):
        self.list1.insert(keys,setvalue)
        self.count.insert(keys,0)
        print("将%s加到列表%s处" % (setvalue,keys))

输出
图片说明

输出的结果就不是一个空列表了
这是为什么啊

第一个继承了List,你写的没能把list的某些属性覆盖掉,具体list自身的魔法方法我不是很清楚,按你第一种,a=List1([1,2,3,4]), [1,2,3,4]被赋值给了self.list1,但是__getitem__get的是list下的而不是你写的部分,问题出在这里,具体list的魔法方法我没找到