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