新式类默认继承object基类,在py3中所有类都是新式类,默认继承自object,这样就会形式闭环型多继承,所以使用广度优先遍历,更为合适。在py2(具体到2.2引进新旧概念)创建的类如果不显式继承object,那就是一个经典类,或旧式类,则多继承时采用深度优先遍历。为了保证统一性,在py2中使用多继承时,建议所有类都声明为新式类,或者全部默认为旧式类,这样就不会存在在py2中令人头疼的多继承搜索方法的路径问题。当然py3不会存在这样的问题,因为py3所有的类都默认继承object类,所以多继承时是一个闭合的环,故搜索路径为广度优先。
python中的新式类和旧式类
最新推荐文章于 2024-05-29 10:47:07 发布