所有 Python 内置函数都是以下类的子类 object 我也遇到过许多用户定义的类。为什么?上课的目的是什么 object?这只是一个空班级,对吗?

有帮助吗?

解决方案

在短,它设置免费神奇小马。

在长,Python 2.2中和先前使用的“旧式类”。他们是一个特定的实现类,和他们有一些限制(例如,你不能继承内建类型)。对此问题进行修复是创建类的新风格。但是,这样做会涉及一些向后兼容的变化。因此,要确保这是老样式类仍然可以工作编写的代码中,object类创建作为所有新样式类的超类。 因此,在Python 2.X,class Foo: pass将创建一个旧式类class Foo(object): pass将创建一个新的样式类。

在更长的时间,见圭的 统一类型和类在Python 2.2

和,在一般情况下,这是一个好主意,让进入使所有的类新型的习惯,因为有些东西(的@property装饰是一个来记)不会有老式类的工作。

其他提示

短的答案:继承object有效使得它新型类(注意,这是因为在Python 3.x的自动不必要)

有关new style类和old style类之间的差:看到这个计算器质疑。对于完整的故事:看在Python类型这个漂亮的书面记录和对象

这与课程的“新式”有关。你可以在这里读更多关于它的内容: http://docs.python.org/tutorial/classes.html#multiple-inheritance 还有这里: http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes

使用新式类将允许您使用“Python 更新的多功能功能,如 __slots__、描述符、属性和 __getattribute__()”。

右,但它标志着类为新型类。新近,因为它花费少而且未来样张你的代码开发类应使用object基地。

在短版是经典类,这并不需要一个超类,有可能无法在不破坏大量的旧代码周围工作的限制。因此,他们创造了新的样式类,其子类从object的概念,现在你可以做很酷的事情想定义属性,并且继承dict不再疼痛和奇怪的错误的练习。

的细节是在Python文档的第3.3节:新建 - 风格和经典类。

scroll top