파이썬[Python]: 내장함수 - super 함수
내장함수 - super 함수(function) /// 설명 상위(parent) 클래스나 등위(sibling) 클래스의 메서드 호출을 위임하는 객체(중계기능)를 반환합니다.(속성(attribute)에도 사용할 수 있습니다.) super() 는 __mro__ 에서 반환하는 우선순위 중, 상위 클래스에서 처음나오는 메서드를 호출하며, 모든 상위 클래스에 메서드가 존재하지 않으면 오류를 발생시킵니다. ex) class A -> class B -> class C -> object class A에서 super()를 사용할 경우 B, C, object 순으로 탐색을 하고, 그 중 가장 먼저 나오는 메서드를 호출합니다. 만약 없으면 오류를 발생시킵니다. 클래스 내부에서 사용시 상위 클래스가 단일하다면, super().method() 형태로 사용하시면 되고, 상위 클래스가 둘 이상이라면, super(type, object).method() 형태로 사용하시면 됩니다. 참고: __mro__ ※ 형식 class super([type[, object-or-type]]) reference https://docs.python.org/3/library/functions.html /// 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class A(object): # base class A def a( self ): print ( 'test A' ) class B(A): def a( self ): print ( 'test B' ) if issubclass(B, A): print (A.__mro__) # (<class '__main__.A'>, <class 'object'>) print (B.__m