본문 바로가기
BASIC

메서드 탐색 순서

by 자동매매 2023. 11. 17.

메서드 탐색 순서 확인하기

많은 프로그래밍 언어들이 다이아몬드 상속에 대한 해결책을 제시하고 있는데 파이썬에서는 메서드 탐색 순서(Method Resolution Order, MRO)를 따릅니다.

 

  • 클래스.mro()
  • 클래스.__mro__
>>> D.mro()
[<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]

 

object 클래스

파이썬에서 object는 모든 클래스의 조상입니다. 그래서 int의 MRO를 출력해보면 int 자기 자신과 object가 출력됩니다.

>>> int.mro()
[<class 'int'>, <class 'object'>]

 

class X:
    pass

 

괄호 안에 object를 넣은 것과 같습니다.

class X(object):
    pass

 

 파이썬 3에서는 괄호 안에 object를 넣어도 되고 넣지 않아도 됩니다.

'BASIC' 카테고리의 다른 글

self  (0) 2023.11.17
추상 클래스  (0) 2023.11.17
메서드 오버라이딩  (0) 2023.11.17
super()  (0) 2023.11.17
정적 메서드 / 클래스 메서드  (0) 2023.11.17

댓글