在Python 2.x中,所有新式类都从object
隐式或显式继承。然后看看这个:旧式类,新式类和元类
>>> class M(type):
... pass
...
>>> class A:
... __metaclass__ = M
...
>>> class B:
... pass
...
>>> a = A()
>>> b = B()
>>> type(A)
<class '__main__.M'>
>>> type(a)
<class '__main__.A'>
这是否意味着A
是一种新式类?但是A
反正不会继承object
吧?
>>> type(B)
<class 'classobj'>
>>> type(b)
<type 'instance'>
行,B
是一个经典的类,不是吗?
>>> isinstance(A, object)
True
>>> isinstance(B, object)
True
为什么都A
的实例和object
B
实例?
如果B
是object
的实例,那么type(B)
不会是classobj
,对不对?
什么都是对象! – orlp
你不应该在这个问题中使用'__slots__'。这完全是另一个问题。 –
@ChrisMorgan,是的,我刚刚意识到这一点。 – Alcott