依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(好比int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径。还有就是实现自定义的metaclass。html
1)在内存中为对象分配空间python
2)返回对象的引用。(即对象的内存地址)spa
python中定义的类在建立实例对象的时候,会自动执行__init__()方法,可是在执行__init__()方法以前,会执行__new__()方法,htm
python解释器在得到引用的时候会将其传递给__init__()方法中的self。对象
这篇博客的例子对比性很好blog
__new__方法主要是当你继承一些不可变的class时(好比int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径继承
参考内存
https://www.cnblogs.com/traditional/p/8395439.html文档
https://www.cnblogs.com/34fj/p/6358702.html博客