对象创建过程

对象的生命过程:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。

__new__ 方法 负责创建对象, 这个对象会传递给 __init__ 方法中定义的 self 参数,以便实例对象可以被正确地初始化。

__init__方法 负责对象的初始化 ,系统执行该方法前,该对象已经存在。 如果 __new__ 方法不返回值(或者说返回 None)那么 __init__ 将不会得到调用。此外,Python 还规定,__init__ 只能返回 None 值,否则报错。

__call__ 方法,不得不先提到一个概念,就是可调用对象(callable),我们平时自定义的函数、内置函数和类都属于可调用对象,但凡是可以把一对括号()应用到某个对象身上都可称之为可调用对象,判断对象是否为可调用对象可以用函数 callable 。 如果在类中实现了 __call__ 方法,那么实例对象也将成为一个可调用对象

上面三个方法都称为魔术方法,因为这些方法不是由用户调用的,而是由解释器调用的。

此外,对象的回收工作是由GC(Garbage Collection)完成的,GC也是解释器的一部分。现代语言的垃圾回收算法都可以写好多内容。

参考:

------ 本文结束------
赞赏此文?求鼓励,求支持!
0%