• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    해결됨

07/02 강의에서 질문 드립니다.

23.08.31 12:38 작성 조회수 86

0

강의 내용 4:00에 get_room 함수 관련하여

room: RolePlayingRoom = None

지정하는 과정에서 에러가 나옵니다

TypeError: unsupported operand type(s) for |: 'ModelBase' and 'NoneType'

이러한 에러가 나오는데 파이썬의 버전 문제일까요?

파이썬은 3.9.12 버전을 사용중입니다.

답변 1

답변을 작성해보세요.

1

안녕하세요.

Type Hinting 자체는 타입이 안 맞더라도, 힌트이기 때문에 파이썬 실행에서 오류를 일으키지는 않습니다.

코드 중에 get_room 함수의 반환값을 지정할 때 사용한 RolePlayingRoom | None 문법이 파이썬 3.10 이상에서 지원되는 문법인데, 현재 파이썬 3.9를 사용 중이시라서 그렇습니다. 타입이 RolePlayingRoom 이거나 None이 될 수 있다는 의미입니다.

image

파이썬 3.9에서는 typing의 Union을 써서 아래와 같이 고쳐보실 수 있습니다.

상단에 Union을 임포트하시고,

from typing import Union

아래와 같이 변경해보세요.

def get_room(self) -> Union[RolePlayingRoom, None]:

 

살펴보시고 댓글 남겨주세요.

화이팅입니다. :-)

궁금증이 다 해결되었습니다!!

항상 좋은 강의 감사합니다