首页 > 其他分享 >魔法方法__len__

魔法方法__len__

时间:2023-07-12 23:22:52浏览次数:29  
标签:__ self 魔法 list len add my

 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

相关文章

  • vue2-生命周期-了解生命周期和生命周期函数的概念
    1.生命周期&生命周期函数生命周期(LifeCycle)是指一个组件从创建->运行->销毁的整个阶段,强调的是一个时间段。生命周期函数:是由vue框架提供的内置函数,会伴随者组件的生命周期,自动按次序执行。注意:生命周期强调的是时间段,生命周期函数强调的是时间点。......
  • 2023.7.12
    早上和平时一样没什么特别的,只是刷刷视频,有时学着做吃的,中午脑袋疼,又去诊所拿了些药,眼泪不知道为什么一直不停的流,脑袋也比平时热,医生说我是细菌感染,我很无语,但还是开了药,下午躺着睡了一下午,终于才缓了过来,起床后吃了中午没吃的饭,蛋炒饭加上泡姜,还是不错的,继续在pta上完成了一些题......
  • windows环境下批处理文件方案
    1:window机器上创建一个.bat结尾的批处理文件@echooffecho袁大总统接口自动化运行准备开始......@echoondel/f/s/qG:\SongQin\Python\Demo\teach_sq\report\tmp\*.jsondel/f/s/qG:\SongQin\Python\Demo\teach_sq\report\tmp\*.jpgdel/f/s/qG:\SongQin\Pyt......
  • 2023暑假集训
    20230710I-VisitingFriend(点双/圆方树)题意多次询问两个点之间所有路径可能经过的点数,路径只需要满足起点和终点不重复经过。\(N,M,Q ≤ 5\times10^5\)题解建出圆方树,方点点权设为0,圆点点权设为1。维护一下子树和,讨论两个点的LCA是不是其中一个点两种情况,删去不可能......
  • 给程序员准备的“蜜糍”--SOD框架简介
    注:本文是SOD框架源码仓库的首页介绍,原文地址一、框架介绍1,SOD框架是什么?以前有一个著名的国产化妆品“大宝SOD密”,SOD框架虽然跟它没有什么关系,但是名字的确受到它的启发,因为SOD框架就是给程序员准备的“蜜糍”(一种含有蜂蜜的糍粑),简单灵活且非常容易“上手”。SOD框架是一个......
  • 就是个复述吧,去年九月份我确实找到工作了,今年5月底离职了,公司技术架构和项目太杂太老
    手写简易spring`packagecom.spring.utils;importcom.spring.BeanDefinition;importcom.spring.inteface.Autowried;importcom.spring.inteface.Component;importcom.spring.inteface.ComponentScan;importcom.spring.inteface.Scope;importcom.spring.service.UserS......
  • Java 继承、super() 关键字使用、super 和 this的区别
    Java继承、super()关键字使用、super和this的区别1.继承继承是子类使用extends关键字来继承父类获取相同的属性和方法,可以解决代码的复用性问题继承的基本思想:父类的构造器进行父类初始化,子类的构造器进行子类的初始化继承使用细节:子类在使用父类的方法或属性时,不能......
  • 读取jar包中资源目录失效
    目标文件: 请使用:InputStreamis=this.getClass().getResourceAsStream("/application.yml");这种方式原因其实是mvn的打包方式决定的,debug的时候getResource可以直接读取路径获取,打成jar则不行,当然如果你还在使用war包和tomcat,可以展开式部署,依然可以使用getResource......
  • 2023.7.12 鲜花
    昨天2023.7.11考的NOIDay1模拟,今天考Day2。个人感觉Day1比Day2可做多了。Day1T1很好做,然后T2今天调出来了,类似DFA建自动机,把所有可能的数处理出来,接着处理出所有状态的后继进行暴力数位DP匹配,可以获得90分高分。注意变量名取得正常一点,不要把乱七八糟......
  • 2023.7.12打卡
    2023.7.12(1)、今天考完科目二了,差一点点没过,然后从市里回来后学了会Java,看了会综艺,果然,恋爱还是看别人谈才有意思,晚上去打了会球,初中的老毛病又犯了,膝盖疼。(2)、明天学Java,记单词,看下《大道至简》,看辩论赛。(3)、做什么事都得认真对待。因为我去市里没带电脑,所以有几天没发博客。......