魔法方法__len__

复制代码
 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()方法,自动调用。
posted @   Allen_Hao  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示