inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

pyright 를 이용한 클래스 재정의 코드 실행 문제점 질문 드립니다.

미해결

타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍

안녕하세요. 강사님. 먼저 재미있고 흡입력있게 파이썬 타입 강의를 진행해주신 것 같아 감사의 말씀 드립니다. ^^ 제네릭 강의를 실습하다가 발견한 부분이 있어 질문을 드리고자 합니다. class Robot ( Generic [ ARM , HEAD ]): class Siri ( Generic [ ARM , HEAD ], Robot [ ARM , HEAD ]): pass 위와 같이 2개의 클래스 정의를 하여 mypy 를 이용하여 python 실행을 하는 경우와 python 실행만 하는 경우는 정상적으로 코드 실행이 되지만 pyright 의 경우에는 아래처럼 MRO 관련한 오류 메시지가 출력이 되며 실행이 되지 않는 것을 확인 하였습니다. error: Cannot create consistent method ordering 아래와 같이 실행을 하게 되면 정상적으로 pyright 도 실행이 되는 것을 확인 하였습니다. class Siri ( Robot [ ARM , HEAD ]): pass 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 를 함께 사용하여 실행 가능한 전체 실행 코드 입니다. from typing import Generic , Optional , Union , TypeVar ARM = TypeVar ( " ARM " ) HEAD = TypeVar ( " HEAD " ) class Robot ( Generic [ ARM , HEAD ]): def __init__ ( self , arm: ARM , head: HEAD ): self.arm = arm self.head = head def decode ( self ): decodedValue: Optional [ ARM ] = None pass def __str__ ( self ): return f " { self . arm } && { self . head } " robot: Robot = Robot [ int , int ]( 122432 , 343534 ) robot2: Robot = Robot [ str , str ]( " 2323544 " , " 84539232 " ) robot3: Robot = Robot [ float , str ]( 345483.135 , " 249308543 " ) class Siri ( Robot [ ARM , HEAD ]): pass siri1 = Siri [ int , int ]( 342323 , 9238235 ) siri2 = Siri [ str , int ]( " 9999 " , 245324 ) siri3 = Siri [ float , str ]( 230845.4523 , " 12948 " ) print (robot) print (robot2) print (robot3) print (siri1) print (siri2) print (siri3) 그럼 앞으로도 좋은 강의 부탁 드리며 22년 한해 새해 복 많이 받으세요. 감사합니다.

  • pyright
  • oop
  • subclass
  • python
  • typing
Ji Nam Lee 댓글 1 좋아요 1 조회수 480

인기 태그

인프런 TOP Writers

주간 인기글