猿问

关于python中__new__ 的一些疑惑

在我自己写的类中,如果没有实现__new__方法的话,而且仅仅继承了object类,是否由object提供__new__方法的默认实现。
另外,如果自己写的类继承了其他父类类(非object类),而该父类实现了__new__方法,那么子类用的是该父类的new方法还是object类的new方法。
classA(object):
pass
classA(object):
def__new__(cls):
pass
clasB(A):
pass
森栏
浏览 367回答 2
2回答

ITMISS

python在查找类方法时会依照深度优先的方式沿着继承链往父类寻找,子类没有的函数会自动找父类,父类没有就找父类的父类直到找到为止.所有其他支持面向对象的语言的继承也是这样查找的.根据第一条,你的子类无new函数,父类有new函数那么在new子类的时候当然会调用父类的new,至于父类会不会调用object的new那要看父类是不是继承了object.你可以搜索pythonmro查找更多的资料
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答