目录
Python 中的魔术方法(Magic Methods)是一系列以双下划线开头和结尾的方法,它们在特定场景下会被 Python 解释器自动调用。这些方法让开发者可以定制类的行为,模拟类似内置类型的特性。
一、初始化和清理:
1、构造方法 __init__(self, ...): 它是类中定义的一个构造方法,用于在创建类的实例时初始化对象的状态。每当通过 class_name() 创建一个新的类实例时,Python 会自动调用 __init__ 方法。
2、__new__(cls, ...): 创建类实例时调用的第一个方法。它是类(class)级别的方法,主要负责创建并返回一个对象实例。当调用 cls() 创建类的新实例时,实际上首先调用的是 __new__ 方法,而不是 __init__ 方法。
3、__del__(self): Python 中的一个特殊方法,称为析构方法或解构方法。当一个对象即将从内存中被删除(垃圾回收)之前,Python 解释器会尝试调用该对象的 __del__ 方法。它的主要用途是用于执行一些清理工作,例如关闭文件、网络连接,或者释放其他系统资源等。
二、属性访问:
1、__getattr__(self, name): 它允许一个对象在尝试访问一个不存在的属性时动态地创建和返回这个属性。
2、__setattr__(self, name, value): 主要负责控制类属性的设置。当尝试给对象的实例或类变量赋值时,Python解释器会自动调用这个方法。
3、__getattribute__(self, name): 每次访问属性时均调用(优先级高于 __getattr__)。用来控制任何属性获取行为的核心方法。每当尝试访问对象的任何属性时,包括类属性和实例属性,Python解释器首先会调用__getattribute__方法。
4、__delattr__(self, name): 当尝试删除属性时调用。当尝试删除一个对象的属性时,Python 解释器会自动调用这个方法。
三、对象表示: