Maybe this should be `__getattribute__` so that all attribute accesses raise errors (including any defined on `object` itself)? Not super likely, but I guess the obscure cases likes calling `str` or `hash` might be tricky to debug later.