__dict__为什么编码员会将不能用于属性访问的东西塞入其中?例如,在我的 Plone 实例中,dir(portal)包含index_html,但portal.index_html会引发 AttributeError。__class__的属性也是如此Products.ZCatalog.Catalog.mybrains。有充分的理由dir()不值得信任吗?
在模块周围戳inspect,我看到他们使用object.__dict__['x']而不是属性访问是出于这个原因并且因为他们不想触发getattr魔法。