来自this question的一些答案带来了非常愚蠢的方法,削弱了覆盖__dir__
和__getattribute__
的对象实例的方法和属性的能力。
属性和方法仍然存在,但是它们真的无法访问吗?
例如,即使type(x)
引发AttributeError,x.__class__
仍会返回正确的答案。
有没有办法访问隐藏的方法和属性?
答案 0 :(得分:1)
对于新式课程的实例,你可以这样做:
object.__getattribute__(instance, '__dict__')
我在阅读文档中标题为More attribute access for new-style classes的部分时得到了这个想法,他们建议这样做以避免在其实现中无限递归。