构造和析构

113 阅读2分钟

欢迎点击上方“蓝字”关注哦!

\

\

\

一、__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__ 方法。

\

**
**

欢迎扫码关注!

**
**

本文分享自微信公众号 - 清菡软件测试(qinghanTester)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。