-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
pyright 를 이용한 클래스 재정의 코드 실행 문제점 질문 드립니다.
22.01.26 16:20 작성 조회수 272
1
안녕하세요.
강사님.
먼저 재미있고 흡입력있게 파이썬 타입 강의를 진행해주신 것 같아 감사의 말씀 드립니다. ^^
제네릭 강의를 실습하다가 발견한 부분이 있어 질문을 드리고자 합니다.
위와 같이 2개의 클래스 정의를 하여
mypy 를 이용하여 python 실행을 하는 경우와 python 실행만 하는 경우는 정상적으로 코드 실행이 되지만
pyright 의 경우에는 아래처럼 MRO 관련한 오류 메시지가 출력이 되며 실행이 되지 않는 것을 확인 하였습니다.
error: Cannot create consistent method ordering
아래와 같이 실행을 하게 되면 정상적으로 pyright 도 실행이 되는 것을 확인 하였습니다.
pyright 를 사용하게 되면 자식클래스에 상속받는 부모클래스에서 처럼 명시적으로 생성자 타입을 정의를 하지 않아야 되는 PEP 가 존재하여 이를 준수하여 그리 되는 것인지 궁금합니다.
아래 문서등에서는 따로 명시적으로 관련 설명이 된 부분은 아직까진 찾지는 못하였습니다..
https://github.com/microsoft/pyright
https://www.python.org/dev/peps/pep-0544/
https://github.com/microsoft/pyright/blob/main/docs/type-concepts.md
실행환경은 아래와 같습니다.
pyright 1.1.215
python 3.9.1
mypy 0.931
아래는 pyright 를 함께 사용하여 실행 가능한 전체 실행 코드 입니다.
그럼 앞으로도 좋은 강의 부탁 드리며 22년 한해 새해 복 많이 받으세요.
감사합니다.
답변을 작성해보세요.
1
윤상석
지식공유자2022.02.19
안녕하세요! 답변이 밀려 이제야 확인하네요 죄송합니다 ㅠㅠ
네 맞습니다! pyright는 해당 툴에서 정의된 PEP 규칙에 따라 타입 체킹이 달라지는 것입니다.
config 파일을 사용하여 원하는 방식으로 규칙을 수정할 수 있으니 참고하세요!
답변 1