python魔术方法大全_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 遍历时触发此方法,

你可能感兴趣的:(python魔术方法大全)