python中,一个class继承于object,或其bases class里面任意一个继承于object,这个class都是new-style class。
二者的区别如下:
>>> class A:
pass
>>> class B(object):
pass
>>> print type(A)
<type 'classobj'>
>>> print type(B)
<type 'type'>
>>> a=A()
>>> b=B()
>>> print type(a)
<type 'instance'>
>>> print type(b)
<class '__main__.B'>
>>> print a.__class__
__main__.A
>>> print b.__class__
<class '__main__.B'>
>>>
新式类更符合OOP编程思想,统一了python中的类型机制。
新式类和旧式类另一个区别就是在多继承的时候,查找要调用的方法:
新式类是广度优先的查找算法。
旧式类的查找方法是深度优先的。