객체

2010-02-19 2 views
0

모든 변수의 키를 검색? 내가 지금까지객체

["varA"] 같은 것을 싶어,이 왔 :

vars(inst.__class__).keys() #returns ['__dict__', '__weakref__', '__module__', 'varA', '__doc__'] 

나는 그와 괜찮아, 난 그냥 이중에서이 바르 무시하는 것입니다. 내 문제는 상속의 여러 레이어와 같습니다 :

class A(object): 
    varA = 1 

class B(A): 
    varB = 2 

inst = B() 
vars(inst.__class__).keys() #returns ['__module__', '__doc__', 'varB'] 

하지만 난 varB 및 varA 모두 검색 할 싶어요. 이 일에 대해 어떻게 생각하니?

vars(super(B, inst).__class__).keys()+vars(inst.__class__).keys() 

을하지만 내가 무엇을 기대하지 않았다 :

나는 또한 시도했다.

중요한 점은 파이썬 2.6을 사용하고 있습니다.

편집 : 사실 난 그냥이 할 수있는 아주 쉬운 방법을 우연히 발견이 : dir(inst)

+0

나는 그것을 몰랐다. 나는 표준을 따르기 위해 나의 모범을 바꿀 것이다. – Ponkadoodle

답변

1

파이썬 모듈이, 런타임 반성을위한 inspect을했다. 어쩌면 inspect.getmembers 당신을 도울 수 ...

+0

그래, 그게 내가 원하는거야. 나는 과거에 검사를 사용했지만, 나는 그것이 가능한 것을 잊어 버렸습니다. – Ponkadoodle