클래스 상속 순서? 질문
378
4 asked
class Siri가 상속을 받을 때,
는 되는데,
위는 cannot create consistent method ordering에러를 내뱉네요. 상속 순서가 의미하는 것이 뭔가요?
mro 찍어보니까 이렇게 나오네요.
Answer 2
2
지나가다가 우연히 아는 내용이 보이길래 댓글 달아봅니다.
파이썬에서는 mro때문에 상속 순서가 매우 중요합니다.
Generic을 먼저 상속받고 Robot을 상속받는 두 번째 코드는 내부적으로 다음과 같이 처리됩니다.
Siri -> Generic(Siri의 부모) -> Robot(Generic의 부모)
먼저 상속받는 클래스가 높은 우선순위를 가지게 되며
이는 super()를 사용해 명확하게 확인하실 수 있습니다.
이렇게 되면 Generic의 부모가 Robot이 되어버리는데
Robot클래스는 선언부에서 Generic을 상속받고 있습니다.
따라서 Generic의 부모는 Robot이 되는데 Robot의 부모도 Generic이 되어버리는 역설적인 상황이 되며 이에 파이썬이 에러를 뱉어버리는 것입니다.
0
해당 문제는
A가 AA를 상속받았을 경우
B가 A와 AA를 모두 상속 받았을때 발생하는 문제입니다.
혹시 에러가 발생한 전체 코드를 보여주실 수 있을까요?
0
넵 아래와 같습니다.
보너스 챕터 마지막 강의 녹화 품질이 문제가 있습니다ㅠㅠ
0
110
1
린터 설치문의
0
362
2
데이터분석에서의 가상환경
0
395
0
print(Robot.how_many()) 하면 None이 뜨는 이유
2
325
2
타입파이썬 문의
1
333
1
프레임워크 질문
1
234
1
문수미님과 같은 내용입니다
1
309
1
pip과pip3의 차이
1
2727
1
메서드 리턴 값이 print일 때 print를 찍으면 None
1
247
1
변수의 참조에 대해서 질문입니다.
1
242
1
질문입니다..
1
201
1
pyright 를 이용한 클래스 재정의 코드 실행 문제점 질문 드립니다.
1
445
1
which pyhon이 왜 안될까요..?
1
435
1
pyright 에러나서 질문드립니다.
1
392
1
클래스 변수 관련 질문입니다.
1
296
1
데코레이터 관련 질문
1
223
1
venv 로 만든 가상환경은 파이썬 버젼을 변경하기가 어려운 것 같습니다.
1
1108
1
Final로 타이핑한 변수에 list를 넣는다면
1
225
1
생성자에서 자기 자신 타이핑 하는 경우
1
217
1
f"{객체}" 출력값에서의 숫자값과 id(객체)에서의 숫자값의 차이가 무엇인가요??
1
331
1
타입힌트 실무에서 자주쓰이나요?
2
478
1
스태틱메소드와 클래스메소드
3
261
1
인스턴스와 데이터
2
232
1
call method 관련 질문입니다!
1
188
1

