是否有可能反省一个覆盖`__dir__`和`__getattribute__`的对象的实际属性/方法?

时间:2012-07-18 09:39:27

标签: python introspection

来自this question的一些答案带来了非常愚蠢的方法,削弱了覆盖__dir____getattribute__的对象实例的方法和属性的能力。

属性和方法仍然存在,但是它们真的无法访问吗?

例如,即使type(x)引发AttributeError,x.__class__仍会返回正确的答案。

有没有办法访问隐藏的方法和属性?

1 个答案:

答案 0 :(得分:1)

对于新式课程的实例,你可以这样做:

object.__getattribute__(instance, '__dict__')

我在阅读文档中标题为More attribute access for new-style classes的部分时得到了这个想法,他们建议这样做以避免在其实现中无限递归。