Python 다중 상속 – 1분 만에 Python MRO(Method Resolution Order)
다중 상속을 수행하는 경우 Python 메서드 해결 순서를 알아야 합니다.
개념에 들어가기 전에 여러 부모 클래스가 있는 클래스를 작성하는 방법을 빠르게 상기시켜 봅시다.
클래스가 여러 파이썬 클래스에서 상속되도록 하려면 파생 클래스를 정의할 때 괄호 안에 이러한 클래스의 이름을 씁니다.
이러한 이름은 쉼표로 구분합니다.
class Animal:
pass
class Bird:
pass
class Duck(Animal, Bird):
pass
이제 Python MRO에 대해 설명하겠습니다.
Python MRO(메서드 해결 순서)
다중 상속과 관련된 클래스에서 속성을 찾을 때 순서를 따릅니다.
먼저 현재 클래스에서 검색을 시작합니다. 찾을 수 없는 경우 왼쪽에서 오른쪽으로 상위 클래스로 검색이 이동합니다.
예제를 다시 살펴보고 몇 가지 속성을 추가해 보겠습니다.
class Animal:
pass
class Bird:
bird_type = "wings"
class Duck(Animal, Bird):
pass
duck = Duck()
duck.bird_type
는 Duck
를 먼저 찾은 다음 Animal
를, 마지막으로 Bird
를 찾습니다.오리 => 동물 => 새
클래스의 MRO를 얻으려면 mro 속성 또는 mro() 메서드를 사용할 수 있습니다.
Duck.mro()
[<class '__main__.Duck'>, <class '__main__.Animal'>, <class '__main__.Bird'>, <class 'object'>]
컨셉에 대해 궁금한 점이 있다면 댓글로 달아주세요😁
Reference
이 문제에 관하여(Python 다중 상속 – 1분 만에 Python MRO(Method Resolution Order)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koladev/python-multiple-inheritance-python-mro-method-resolution-order-in-1-minute-243f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)