파이썬의 내장 클래스 속성인 __bases__는 호출될 때 해당 클래스 객체가 직접 상속하는 기반(base) 클래스들을 튜플(tuple) 형태로 반환합니다. 즉, 특정 클래스의 부모 클래스가 무엇인지 확인하고 싶을 때 유용하게 활용할 수 있습니다.
아래 코드를 통해 __bases__의 동작 방식을 살펴보겠습니다. 여기서 B는 부모(기반) 클래스 A를 상속받는 자식 클래스입니다.
예제
class A(object): pass class B(A): pass b = B() print(B.__bases__)
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
(<class '__main__.A'>,)
설명
출력 결과에서 볼 수 있듯이, B.__bases__는 클래스 B가 직접 상속한 기반 클래스 A를 원소로 갖는 튜플을 반환합니다. 몇 가지 참고할 점은 다음과 같습니다.
__bases__는 항상 튜플을 반환하므로, 여러 개의 부모 클래스를 상속하는 경우(다중 상속)에도 모든 직계 부모 클래스가 함께 출력됩니다.- 클래스 정의 시 명시적으로 상속받은 클래스가 없다면, 파이썬 3에서는 기본적으로
object가 기반 클래스가 됩니다. - 직계 부모만 표시되며, 조상 클래스 전체 계층을 확인하려면
__mro__(메서드 해석 순서) 속성을 사용하는 것이 좋습니다.