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
类方法可以访问类属性,至于能不能访问对象属性,查一查书