美文网首页
魔法方法init和new

魔法方法init和new

作者: 胖虎很可爱 | 来源:发表于2018-04-20 16:18 被阅读0次

继承自object的新式类才有new

new至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供

new必须要有返回值,返回实例化出来的实例,这点在自己实现new时要特别注意,可以return父类new出来的实例,或者直接是object的new出来的实例

init有一个参数self,就是这个new返回的实例,initnew的基础上可以完成一些其它初始化的动作,init不需要返回值

new没有正确返回当前类cls的实例,那init是不会被调用的,即使是父类的实例也不行

结论:
当创建一个类的对象的时候先执行此类的new方法(必须有返回值),
一般来说这个返回值是此类的对象(不排除返回其他类对象的情况)
1.当返回此类对象的时候,会调用此类的init方法进行初始化操作.
2.当返回别类对象的时候,会调用别类的new方法进行创建对象,然后根据返回值在进行2操作

相关文章

网友评论

      本文标题:魔法方法init和new

      本文链接:https://www.haomeiwen.com/subject/wehzkftx.html