9

object在 Python 2 中,即使旧样式类的实例没有显式继承自,为什么它们仍然是 的实例object

class OldClass:
    pass

>>> isinstance(OldClass(), object)
True

在测试这个之前,我会得出结论,isinstance(x, object) == True这意味着它x是一个子类的object实例,因此是一个新样式类的实例,但似乎 Python 2 中的所有对象都是object(是的,我知道这听起来多么明显)。


进一步挖掘,我发现了一些其他看似奇怪的行为:

>>> issubclass(OldClass, object)
False

我的印象isinstance(x, SomeClass)几乎等同于issubclass(x.__class__, SomeClass),但显然我错过了一些东西。

4

0 回答 0