Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 주어진 클래스에서 클래스 속성이 정의되었거나 파생되었는지 어떻게 확인할 수 있습니까?


아래 코드는 'foo' 속성이 클래스 A와 B에서 정의 또는 파생되었는지 여부를 보여줍니다.

예시

class A:
    foo = 1
class B(A):
    pass
print A.__dict__
#We see that the attribute foo is there in __dict__ of class A. So foo is defined in class A.
print hasattr(A, 'foo')
#We see that class A has the attribute but it is defined.
print B.__dict__
#We see that the attribute foo is not there in __dict__ of class B. So foo is not defined in class B
print hasattr(B, 'foo')
#We see that class B has the attribute but it is derived

출력

{'__module__': '__main__', 'foo': 1, '__doc__': None}
True
{'__module__': '__main__', '__doc__': None}
True