2012-07-18 1 views
0

this question의 답변 중 일부는 __dir____getattribute__을 (를) 덮어 쓰는 개체 인스턴스의 메서드와 특성에 액세스하는 기능을 손상시키는 매우 어리석은 방법을 제공합니다.`__dir__`과`__getattribute__`를 오버라이드하는 객체의 실제 속성/메소드를 인트로 스 트하는 것이 가능합니까?

속성과 메소드는 여전히 있지만 액세스 할 수 있습니까?

예를 들어, x.__class__이 AttributeError를 발생시키는 경우에도 type(x)은 여전히 ​​올바른 대답을 반환합니다.

숨겨진 방법과 속성에 액세스 할 수있는 방법이 있습니까? 새로운 스타일의 클래스의 인스턴스에 대한

+0

'type (x) .__ dict__' – martineau

+0

@martineau : 흥미 롭지 만, 인스턴스'__dict__'는 어떨까요? –

+0

새로운 스타일 클래스이므로'object .__ getattribute __ (x, '__dict __') ' – martineau

답변

1

이 같은 뭔가를 할 수 : 그들은 무한 피하기 위해 그런 일을 제안 문서에 More attribute access for new-style classes라는 제목의 섹션을 읽는 동안 나는 생각이있어

object.__getattribute__(instance, '__dict__') 

구현시 재귀.