Python类的__len__方法
对于列表List或者元组Tuple,通过内建方法len(),可以得出列表或者元组中元素的个数。如果一个类表现得像一个list,想使用len()函数来获取元素个数时,则需要实现__len__()方法。
比如我们实现一个班级Class的类,初始化把班级的同学名字列表传进去,希望len()函数可以返回班级同学的数量时,可以这样实现。
class Class:
def init(self, students):
self.students = students
def len(self):
return len(self.students)
students = [‘Alice’, ‘Bob’, ‘Candy’]
class_ = Class(students)
len(class_) # ==> 3
通过自定义__len__()方法,可以让len()函数返回相关的结果,如果没有定义__len__()方法的类使用len()函数获取长度时,将会引起异常。
class Class:
def init(self, students):
self.students = students
class_ = Class(students)
len(class_)
Traceback (most recent call last):
File “”, line 1, in
TypeError: object of type ‘Class’ has no len()