2016-08-13 5 views
0

파이썬에서는 클래스 필드를 __dict__으로 가져올 수 있습니다. 여기에 두 가지 질문이 있습니다.파생 클래스 필드 가져 오기

필드를 가져 오는 더 좋은 방법이 있습니까? 왜냐하면 값을 가진 필드 만 가져 오기 때문입니다. 기본 클래스가 아닌 클래스 자체에만 존재하는 필드는 어떻게 얻을 수 있습니까?

+1

난 당신이 속성을 의미하는 것 같아요. * class-name.attribute-name *을 시도 했습니까? – cdarke

+0

예, 특성입니다. 저는 파이썬 멍청한 놈입니다. 내 목표는 같은 코드 생성기를 만드는 것입니다. 다른 클래스에서 상속받은 클래스가 있습니다. 기본 클래스 속성이 아닌 해당 속성과 값이 필요합니다. – Doruk

답변

1

확인이되지 않은 : 방법이 있습니다 속성

from types import FunctionType 

class A (object): 
    def test(self): 
     pass 

class B(A): 
    def test12(self): 
     pass 


print([x for x,y in A.__dict__.items() if type(y) == FunctionType]) 

print([x for x,y in B.__dict__.items() if type(y) == FunctionType]) 

는,이 시도 :

attributes = [x for x,y in B.__dict__.items() if (type(y) != FunctionType and type != callable)] 

[a for a in attributes if not(a.startswith('__') and a.endswith('__'))] 
+0

이 코드는 기능을 나열합니다. 나는 속성이 필요해. 어쨌든 고마워. – Doruk

+1

그건 거의 같은 일이에요. –

+0

Nidhin, 당신의 예에서는 무엇을 사용하고 있었습니까? 나는 이것을 훈련 비디오 나 그와 비슷한 것으로 보았고 실험하고 싶었다. – LhasaDad