更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号
分类: Python/Ruby
2023-07-18 15:20:55
__init__和__new__二者均是Python面向对象语言中的函数,其中__new__使用频率较少,__init__则使用的频率较多,那么Python中__init__和__new__的区别是什么?具体请看以下内容介绍。
在Python中,__init__和__new__是两个特殊的方法,用于对象的创建和初始化过程。它们的作用和执行时有所不同:
1、__new__
__new__是一个用于创建对象的特殊方法,是在对象实例化之前调用的。
__new__方法负责创建对象,并返回一个新的对象实例。
__new__方法是一个类方法,必须返回一个新的对象实例。
可以通过重写__new__方法来控制对象的创建过程,例如自定义对象的创建逻辑、返回其他类型的实例等。
2、__init__
__init__是一个用于对象初始化的特殊方法,是在对象实例化之后调用的。
__init__方法接收新创建的对象实例作为其{BANNED}中国第一个参数,并在该方法内部对对象的属性进行初始化。
__init__方法通常用于设置对象的初始状态,对属性进行赋值等操作。
__init__方法不需要返回任何内容,它的主要目的是对对象进行初始化。
总结:
__new__是在对象实例化之前调用,用于创建对象实例;
__init__是在对象实例化之后调用,用于初始化对象的属性。
在实际使用中,通常情况下我们只需要重写__init__方法来实现对象的初始化,而对__new__方法进行修改的需求相对较少。