Python中__new__方法怎么用?Python类中__new__()和__init__()方法的区别

我们在之前的学习中 , 有学过Python类 , 在继承object类的时候 , 会用到__new__()方法 , 当类中同时出现__new__()和__init__()时 , 先调用__new__() , 再调用__init__() , 最近很多的小伙伴在好奇这两者之间的区别 , 这篇文章主要带大家一起进一步的了解两种方法的区别 。

Python中__new__方法怎么用?Python类中__new__()和__init__()方法的区别

文章插图
python中__new__()与__init__()的区别:
1、用法不同
在Python类中 , 使用_new_()主要是用来创建实例 , 这种方法是在实例创建之前就已经被调用了 , 属于一种静态方法 。而__init__()它主要用来对实例进行初始化 , 当对象创建后才会被调用 。
2、传入的参数不同
__new__()方法中 , 可以对有多个参数cls,这个参数表示的含义为当前类 , 在实例化的使用中Python解释器会自动进行识别 , __init__()方法中 , 包含至少一个self参数 , 这两者直接的关系就是先使用__new__()方法对一个实例进行返回 , 再使用_init__()方法在__new__()方法的基础上对初始化进行操作 。
3、返回值也不同
在_new_方法中 , 必须会有返回值 , 最后返回的是一个实例对象 。而__init__()方法中 , 没有返回值 。
【Python中__new__方法怎么用?Python类中__new__()和__init__()方法的区别】以上就是有关Python中__new__()和__init__()有什么区别?Python类中__new__()和__init__()方法的区别的全部内容了 , 希望可以对大家的学习带来一定的帮助 , 如果还有其他的疑问 , 可以继续关注学习哦!

    推荐阅读