定义class时是否需要继承object?
2023-04-28 阅读 65
在Python 3中,定义class时不需要显式地继承object,因为所有的class都隐式地继承了object。但是,在Python 2中,如果你想定义一个新式类(New-Style Class),那么你需要显式地继承object,否则它将被视为经典类(Classic Class)。
经典类和新式类的主要区别在于它们的方法解析顺序(MRO)不同。在新式类中,MRO使用C3算法来解析方法的继承顺序,而在经典类中,MRO使用深度优先算法来解析方法的继承顺序。
由于Python 2的历史原因,建议在Python 2中定义class时显式地继承object,以确保定义的是新式类。在Python 3中,你可以选择显式地继承object或者省略它。
更新于 2023年05月04日