>>> class MyKlass:
... pass
...
>>>
>>>
>>> a = MyKlass()
>>>
>>> type(a)
<type 'instance'>
>>> type(MyKlass)
<type 'classobj'>
>>>
>>>
>>> class MyKlass(object):
... pass
...
>>>
>>> a = MyKlass()
>>>
>>> type(a)
<class '__main__.MyKlass'>
>>> type(MyKlass)
<type 'type'>
>>>
在上面的代码中,一个类不是从任何基类继承而另一个是从object
基类继承的。
如果你没有明确地继承,我已经在某处读过,默认的父类是object
,我是对的吗?
但是如果默认值是object
,为什么两个类的类型都不同?上述不同行为何时以及如何有用?
答案 0 :(得分:1)
从Python 3.x开始,所有类都隐式地扩展object
。
但这不适用于Python 2.x.看看New-style and classic classes。在较旧的Python版本中,您必须显式扩展object
类