在python的类声明中,有很多类似于__xx__格式的方法,比如说__len__(),这表示在特定的条件下会调用该方法,当然也可以直接调用,现总结一些常用的如下:
1.__len__(),对类对象调用len(obj)的时候会调用该方法,一般用来返回长度,这也是为什么可以用len()去获取列表,字符串等的长度的原因
2.__call__(),把类对象当成函数来调用时触发
3.__repr__,打印对象的时候触发,一般用来给出一些详细的类信息
4.
__getitem__和__setItem__,把对象当做Iterable调用的时候就会触发,比如说把对象当做列表字典直接调用
5.__dict__,把对象拥有的全部方法和变量以字典的形式展示
6.__dir__,把对象的所有可用的方法和属性以列表的形式展现出来
7.__del__,在回收对象的时候调用,但是要注意的是,这个只是让引用计数器-1,如果引用计数器不为0,只能等到程序终止的时候调用
如上图所示,a的引用计数器在del后为0,所以立即被回收
该对象的引用计数器在调用del后从2变成1,不为0,所以只能等到程序终止的时候回收,所以先打印end
以上是我们常见的一些特殊方法,还有很多静态方法可以通过文档获得一下为int类型的一些静态方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架