인프런 커뮤니티 질문&답변

hskanbu0501님의 프로필 이미지
hskanbu0501

작성한 질문수

ChatGPT 영어 상황극 채팅 서비스 만들기 (Feat. 파이썬/장고채널스)

[07/02] 웹소켓 접속 유저의 RolePlayingRoom 및 초기 프롬프트 조회하기

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

해결된 질문

작성

·

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이 될 수 있다는 의미입니다.

image

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

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

from typing import Union

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

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

 

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

화이팅입니다. :-)

hskanbu0501님의 프로필 이미지
hskanbu0501
질문자

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

항상 좋은 강의 감사합니다

hskanbu0501님의 프로필 이미지
hskanbu0501

작성한 질문수

질문하기