[列举面向对象中带双下线的特殊方法]

[复制链接]
发表于 2023-2-9 14:13:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
列举面向对象中带双下线的特殊方法?
  1. 类的内置方法(魔法方法):
  2.     凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,也称之为魔法方法。
  3.     类的内置方法,会在某种条件满足下自动触发。
  4. 内置方法如下:
  5.     __new__: 在__init__触发前,自动触发。  调用该类时,内部会通过__new__产生一个新的对象。
  6.     __init__: 在调用类时自动触发。    通过产生的对象自动调用__init__()
  7.     __getattr__: 在 “对象.属性” 获取属性时,若 “属性没有” 时触发。
  8.     __getattribute__: 在 “对象.属性” 获取属性时,无论 "属性有没有" 都会触发。
  9.         # 注意: 只要__getattr__ 与 __getattribute__ 同时存在类的内部,只会触发__getattribute__。
  10.    __setattr__:当 “对象.属性 = 属性值” , 添加或修改属性时触发
  11.    __call__ : 在调用对象 “对象 + ()” 时触发。 即:对象() 或者 类()()
  12.    __str__  : 在打印对象时触发。 # 注意: 该方法必须要有一个 “字符串” 返回值。
  13.    __getitem__: 在对象通过 “对象[key]” 获取属性时触发。
  14.    __setitem__: 在对象通过 “对象[key]=value值” 设置属性时触发。
  15.    __gt__,__lt__,__eq__:自定义比较对象大小双下:gt、lt、eq
  16.    __enter__:  进入文件时,开打文件时执行。返回值:self
  17.    __exit__:  退出文件时,报错中断、或者代码执行完时执行。 返回值:可以有返回值,是bool类型
  18.    __del__ : 手动删除时立马执行,或者程序运行结束时自动执行
  19.             使用场景:当你的对象使用过程中,打开了不属于解释器的资源;例如,文件,网络端口
  20.    __slots__:原理,给对象声明只有某些属性,从而删除不必要的内存,不能添加新属性
  21.             使用场景:1.优化对象内存  2.限制属性数量
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表