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'>
OK、B
クラシッククラスですね。
>>> isinstance(A, object)
True
>>> isinstance(B, object)
True
なぜ両方A
のインスタンスとB
のインスタンスがあるのobject
ですか?
B
のインスタンスである場合、そうobject
ではtype(B)
ありませんclassobj
か?