Python的类继承dict、list、set之后,该类的类方法怎么获取它的长度

Python的类继承dict、list、set之后,该类的类方法怎么获取它的长度?

 class Account(list):
    def __init__(self, account):
        list.__init__([])
        self.append(account)

    def getlen1(self):
        print(len(self))

    @classmethod
    def getlen2(cls):
        print(len(cls))

if __name__ == '__main__':
    a = Account(['jone', 27, '36'])
    a.getlen1()
    a.getlen2()

执行方法2会报错:
图片说明

cls是类,self是自身,super才是基类。用cls访问的是类的静态方法,所以不能调用len

为啥要这么写 ,类的方法中只能调用类的属性,所以执行不成功,我瞎改了下,你可以看看:
class Account(list):
ll = []
def init(self, account):
list.__init__([])
self.append(account)

def getlen1(self):
    print(len(self))
    print self

@classmethod
def getlen2(cls,self):
    cls.ll = self
    print cls.ll
    print(len(cls.ll))

if name == '__main__':
a = Account(['jone', 27, '36'])
a.getlen1()
a.getlen2(a)

输出:
1
[['jone', 27, '36']]
[['jone', 27, '36']]
1

类方法可以访问类属性,至于能不能访问对象属性,查一查书