爲什麼編碼器將東西填入__dict__
不能用於屬性訪問?例如,在我的Plone實例中,dir(portal)
包含index_html
,但portal.index_html
引發了AttributeError。對於Products.ZCatalog.Catalog.mybrains
的__class__
屬性也是如此。 dir()
不能被信任是否有充分的理由?爲什麼dir(x)中的所有名稱都不適用於屬性訪問?
嘲笑inspect
模塊,我看到他們使用object.__dict__['x']
而不是屬性訪問,因爲這個原因,並且他們不想觸發getattr
魔法。
`__dir__`是Python 2.6中的新增功能,並且IIRC Zope仍然不能運行在比Python 2.4更新的任何東西上。 – habnabit 2009-01-28 02:55:12