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

posted @ 2019-05-17 11:15  筱筱的春天  阅读(224)  评论(0编辑  收藏  举报