mro
-
Python - MRO(Method Resolution Order)Python 2019. 9. 7. 17:48
Django REST Framework 문서에서 mixin 부분을 읽다가 예전에 공부 했었던 MRO(Method Resolution Order)에 대해 정리해 두는것이 좋을 것 같아 오랜만에 글을 쓰게 되었습니다. Method Resolrution Order 파이썬은 다중 상속이 가능합니다. C라는 클래스가 A, B라는 클래스를 상속받고, A와 B 클래스에 met이라는 메서드를 가지고 있을 경우, C.met()은 어떤 클래스의 메소드를 실행 시킬까요? 파이썬에서는 이러한 메서드의 탐색 순서를 결정할 수 있도록 다중 상속 시, __mro__ 라는 속성에 메서드의 호출 순서가 정렬됩니다. 예를 들어 class C(A, B)로 정의될 경우 실행 순서(MRO)는 왼쪽에서 오른쪽으로 C, A, B가 됩니다. 만일..