翼度科技»论坛 编程开发 python 查看内容

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

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
列举面向对象中带双下线的特殊方法?
  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.限制属性数量
复制代码
来源:https://www.cnblogs.com/liupengfei1123/p/17105217.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具