python中魔术方法和属性汇总

  类定义后,便在内存中开辟空间存储类属性和所有的方法,其中类属性是以字典的形式进行存储。当实例化一个类时,即另开辟空间存储成员变量,以及定义变量__class__指向类的存储空间。对象中的私有变量也是可以访问的,只是其名字发生改变,obj._class名__varible可以通过对象.__dict__查询。
class中魔法属性:
__module__:获取模块名
__class__:获取类名
__dict__ :获取对象或类的属性,dict形式

__dir__:获取对象或类的属性,list形式,包括__dict__.
__mro__:获取对象的继承顺序
__doc__:获得对象或函数的描述信息

__file__:获得该文件的名字,其包含路径信息。
class中魔法方法:
__init__:对象初始化
__new__:开辟空间创建新对象
__del__:对象释放时,自动自行
__call__: 对象调用时(obj()),自动执行
__str__: 对象转化为字符信息,以友好的方式便于用户理解的方式返回字符内容

__repr__: 返回对象的描述信息,针对开发者,返回信息保留有原始性

__bool__:判断对象的bool值时,会调用该方法。一般使用if时,触发该方法

__eq__、__gt__、__lt__、__ge__、__le__:当对象进行比较时,出发该方法

__setattr__、__getattr__、__delattr__:访问对象属性的时候,触发该方法


__enter__:with 上下文管理器开始后,自动执行
__exit__:with 上下文管理器结束后,自动执行,即使主进程报错,也执行
__iter__:  将对象转化为可迭代的对象,
__next__:for 遍历时触发此方法,

原文地址:https://www.cnblogs.com/xuehaiwuya0000/p/10933608.html