Почему кодер вставляет вещи в __dict__
, которые нельзя использовать для доступа к атрибутам? Например, в моем экземпляре Plone dir(portal)
включает index_html
, но portal.index_html
вызывает AttributeError. Это также верно для атрибута __class__
Products.ZCatalog.Catalog.mybrains
. Есть ли веская причина, почему dir()
нельзя доверять?
Обыскивая модуль inspect
, я вижу, что они используют object.__dict__['x']
вместо доступа к атрибутам по этой причине и потому, что они не хотят запускать getattr
магию.