> 历史文化
构造和析构函数(构造和析构可以是虚函数吗)
导语:构造和析构
一、__init__(self[,...]) 方法。
1,当我们的实例对象需要有明确的初始化步骤的时候,你可以在 __init__ 方法中部署初始化的代码。
假设定义一个矩形类。
2,如果需要对一个对象进行初始化操作的时候,就要重写 __init__ 。
二、__new__(cls[,...]) 方法。
_new__ 是在一个对象实例化的时候所调用的第一个方法,它的第一个参数不是 self 而是这个类(cls),在 __init__ 方法之前被调用,如果后面有参数,会原封不动的传给 __init__ 方法。
__new__ (cls[,...]) 方法需要一个实例对象作为返回值,它需要返回一个对象,通常返回 cls 这个类的实例对象,也可以返回其他类的对象。
__new__(cls[,...]) 方法平时是很少去重写它的,一般我们 python 用默认的方案去执行就可以了。没有去重写,python 就会在需要的时候默认去执行它。当继承一个不可变类型的时候,又需要去修改它的时候,那它的特性就显得尤为重要了。
三、__del__(self) 方法。
1,是当垃圾回收机制。
2,__init__ 和 __new__ 方法是对象的构造器的话,那么 python 也提供了一个析构器,叫做 __del__ 方法,当对象将要被销毁的时候,这个对象就会自动被调用。
所有对它的引用都被 __del__ 之后才会启动垃圾回收机制。这个垃圾回收机制去销毁这个对象的时候,就自动调用 __del__ 方法。
本文内容由小故整理编辑!