依照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博客