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