在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