所有 Python 内置函数都是 object
的子类,我也遇到过许多用户定义的类。为什么?类 object
的目的是什么?这只是一个空类,对吧?
最佳答案
注意:新式类是 Python 3 中的默认类。子类化 object
那里是不必要的。阅读下文,了解有关使用 Python 2 的更多信息。
简而言之,它释放了魔法小马。
总而言之,Python 2.2 及更早版本使用“旧式类”。它们是类的特定实现,并且有一些限制(例如,您不能子类化内置类型)。解决这个问题的方法是创建一种新的类风格。但是,这样做会涉及一些向后不兼容的更改。因此,为确保为旧样式类编写的代码仍然有效,object
创建类是为了充当所有新型类的父类(super class)。
所以,在 Python 2.X 中,class Foo: pass
将创建一个旧式类和class Foo(object): pass
将创建一个新的样式类。
更长的时间,请参阅 Guido 的 Unifying types and classes in Python 2.2 .
而且,一般来说,养成使所有类都采用新样式的习惯是个好主意,因为有些东西(想到的是 @property
装饰器)不适用于旧样式类。
关于python - 在 Python 中对类 "object"进行子类化的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997466/