Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 내장 클래스 속성 __bases__란 무엇이며 어떻게 사용할까?

파이썬의 내장 클래스 속성인 __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__(메서드 해석 순서) 속성을 사용하는 것이 좋습니다.