这个__new__
确实很少见到,先做了解吧.
1. __new__
是一个静态方法,而__init__
是一个实例方法.
2. __new__
方法会返回一个创建的实例,而__init__
什么都不返回.
3. 只有在__new__
返回一个cls的实例时后面的__init__
才能被调用.
4. 当创建一个新实例时调用__new__
,初始化一个实例时用__init__
.
ps: __metaclass__
是创建类时起作用.所以我们可以分别使用__metaclass__
,__new__
和__init__
来分别在类创建,实例创建和实例初始化的时候做一些小手脚.