我们使用面向对象编程,接触最多的魔法方法就是__init__方法。我们都知道init方法是初始化对象的,但是对象从哪儿来的呢?其实,在我们创建一个实例对象的时候,另外一个魔术方法__new__就为我们创建了对象,并且将对象返回给__init__,让__init__为我们初始化。但是我们为什么没有写__new__方法呢?因为我们继承的父类中有这个方法,自动帮我们做好了。
总结来说:
new方法帮我们创建对象,并返回给init方法
init方法帮我们初始化
顺便提一句,单例模式就是利用new方法帮我们初始化对象的原理来实现的