Python类解释

时间:2013-10-29 10:20:47

标签: python class object types instance

为什么Python将这些类视为不同的数据类型?

>>> class A:
...    pass
...
>>> class B(object):
...     pass
...
>>> a = A()
>>> b = B()
>>> type(A)
<type 'classobj'>
>>> type(B)
<type 'type'>
>>> type(a)
<type 'instance'>
>>> type(b)
<class '__main__.B'>

我很新。所以我真的不明白为什么它将所有这些视为不同的数据类型。它们都是类,所以看起来它们应该是相同的。

1 个答案:

答案 0 :(得分:6)

你正在使用Python 2。

Python 2允许不继承自版本2.2中添加的object的类。他们在某些方面与“新式课程”的行为不同,你找到了一对。

除了保持向后兼容性之外,没有理由采用不同的行为,即确保为旧式类编写的代码在Python 2的新版本中继续有效。

Python 3不向后兼容,并且没有旧式类。如果您在Python 3中编写了相同的代码,那么A将继承object,即使您没有明确说明。