Python类解释

Python类解释,python,class,object,types,instance,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'> >>> t

为什么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'>
>>A类:
...    通过
...
>>>B类(对象):
...     通过
...
>>>a=a()
>>>b=b()
>>>类型(A)
>>>类型(B)
>>>类型(a)
>>>类型(b)
我是新来的。所以我真的不明白为什么它会将所有这些视为不同的数据类型。它们都是类,所以看起来应该是相同的。

您使用的是Python 2

Python 2允许不从
对象继承的类,该对象是在2.2版中添加的。它们的行为在几个方面与“新型类”不同,您已经发现了一些

除了保留向后兼容性之外,没有其他理由可以使用这种不同的行为,这是为了确保为旧式类编写的代码在Python 2的新版本中继续工作

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

Dup: