len()函数在Python中无法正常工作

Fra*_*ank 0 python function list

我有以下代码:

class Stat(list):
    def __init__(self, lst = []):
        self.s = list(lst)

    def __repr__(self):
        return "Stat({})".format(self.s)

    def add(self, item):
        self.s.append(item)

    def len(self):       
        return len(self.s)

...(more methods, but not necessary)
Run Code Online (Sandbox Code Playgroud)

所有方法都能正常工作但是len().无论Stat对象的长度如何,返回的长度始终为0; 我不明白为什么.

小智 7

当你像这样使用它时它会返回0:

x = Stat([1,3,4,5])
print len(x)
Run Code Online (Sandbox Code Playgroud)

如果要覆盖len函数,请使用以下代码:

def __len__(self):       
    return len(self.s)
Run Code Online (Sandbox Code Playgroud)