python __new__和 __init__

区别

1. __new__方法是在实例对象创建时执行的,而构造方法__init__是实例创建后执行的。

2.  解析:

(1)__new__方法

  • __new__方法是Python新式类(py2既有新式类也有经典类、py3统一为新式类;(py2中的新式类需要显示继承object))引入的
  • __new__用于控制生成一个新实例的过程。是类级别的静态方法,在创建实例对象时执行,如果自定义类中没有重写该方法,则Python自动调用父类的方法,当所有父类也没有重写定义该方法时,则直接调用object类的__new__方法。
  • __new__(cls,*args,**kwargs)  其中:

             1)    cls为创建实例对应类的类名,由Python自动传入;

             2)    args为实例创建时传入的非关键字参数,打包成元组tuple给函数体调用;

             3)    kwargs为实例创建时传入的关键字参数,字典形式的

https://blog.csdn.net/LaoYuanPython/article/details/93639520

你可能感兴趣的:(Python基本语法,python)