해결된 질문
작성
·
127
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이 될 수 있다는 의미입니다.
파이썬 3.9에서는 typing의 Union을 써서 아래와 같이 고쳐보실 수 있습니다.
상단에 Union을 임포트하시고,
from typing import Union
아래와 같이 변경해보세요.
def get_room(self) -> Union[RolePlayingRoom, None]:
살펴보시고 댓글 남겨주세요.
화이팅입니다. :-)
궁금증이 다 해결되었습니다!!
항상 좋은 강의 감사합니다