1 ''' 2 __len__() 是一个魔法方法,用于返回对象的长度或元素个数。 3 它通常被用于支持内置函数 len() 的调用,并在自定义的容器类中实现。 4 最佳实践: 5 1. 在容器类中实现 __len__() 方法可以提供对象的长度信息,使其能够像内置容器(如列表、字典等)一样使用。 6 2. __len__() 方法应该返回一个整数,表示容器中的元素个数。 7 3. 如果对象不支持计算长度或没有明确的概念来表示长度,则不需要实现 __len__() 方法。 8 ''' 9 10 ''' 11 定义了一个名为 MyList 的自定义容器类,它包含一个 data 属性用于存储数据。 12 实现了 add() 方法来向容器中添加元素,并重载了 __len__() 方法以返回容器中元素的数量。 13 当调用 len(my_list) 时,实际上会自动调用 my_list.__len__() 方法,并输出其返回的结果。 14 ''' 15 class MyList: 16 def __init__(self): 17 self.data = [] 18 19 def add(self, item): 20 self.data.append(item) 21 22 def __len__(self): 23 return len(self.data) 24 25 26 my_list = MyList() 27 my_list.add(1) 28 my_list.add(2) 29 my_list.add(3) 30 # 通过实现 __len__() 方法,我们使得 MyList 类的对象可以像内置的列表一样使用 len() 函数来获取其长度。 31 print(len(my_list)) # 输出:3
返回对象的长度或元素个数,通过调用len()方法,自动调用。标签:__,self,魔法,list,len,add,my From: https://www.cnblogs.com/allenxx/p/17549155.html