[파이썬 기초] 클래스 상속 - super() 내장함수와 다이아몬드 구조의 다중 상속


[파이썬 기초] 클래스 상속 - super() 내장함수와 다이아몬드 구조의 다중 상속

이번엔 이전의 클래스 상속의 IS-A 관계에 이어서 super( ) 내장함수와 다이아몬드의 구조를 가진 다중 상속에 대해서 살펴보자. super( ) 내장함수 super( ) 내장함수는 속성 해결순서(method resolution order)인 __mro__ 속성의 상위 클래스 대행객체(proxy object) 자체를 반환한다. super( )는 주로 두 가지 경우에 유용하게 사용되는데, 하나는 단일 상속에서 상위 클래스를 참조하기 위해 사용되고, 또 다른 하나는 다이아몬드 구조 같은 다중 상속에서 상위 클래스의 메소드를 중복하여 호출되지 않게 방지하는 역할을 한다. >>> class B: ... def __init__(self): ... print('B 호출') ... >>> class D(B): ... def __init__(self): ... super().__init__() ... >>> 위의 클래스 구조를 살펴보자. 상위 클래스 B는 __init__( ) 메소드에서 'B ...


#python #super #객체 #다이아몬드 #다중상속 #상속 #클래스상속 #파이썬

원문링크 : [파이썬 기초] 클래스 상속 - super() 내장함수와 다이아몬드 구조의 다중 상속