왜 return타입이 ToDo라는 스트링인가요?
안녕하세요.
항상 좋은 강의 감사드립니다.
수업을 듣던중 2:31경에 나오는 리턴타입을 왜 스트링으로 설정하는지 궁금해서 질문드립니다.
이상입니다. 감사합니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 특별한 까치님.
질문해주신 리턴 타입을 문자열로 설정하는 이유는 주로 “Forward Reference”라고 불리는 기능 때문입니다. 이 기능은 주로 타입 힌트를 사용할 때, 아직 정의되지 않은 클래스나 함수 등을 미리 사용할 수 있게 해주는 기법입니다.
예를 들어, 클래스 내부에서 자신의 인스턴스를 반환하는 메서드를 정의할 때 해당 클래스가 아직 완전히 정의되지 않았다면, def done(self) -> "Todo"처럼 문자열로 타입을 힌트하게 됩니다. 이렇게 하면 나중에 클래스가 완전히 정의되었을 때 Python 인터프리터가 올바르게 참조할 수 있습니다. 파이썬 3.7 이상 버전에서는 from __future__ import annotations를 사용하면 이러한 문자열 표기를 사용하지 않아도 되지만, 이전 버전이나 관습적인 코드에서는 여전히 이런 방법을 사용할 수 있습니다.
다른 유사한 질문과 답변을 참고하실 수 있는 링크를 제공해 드립니다:
- 타입힌트 질문 - 타입 힌트를 문자열로 작성하는 이유와 관련된 댓글을 확인하세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요, 클래스 내부에서 자기 자신을 반환하는 메서드를 정의할 때, 해당 클래스가 아직 완전히 정의되지 않았기 때문에 타입 힌트에서 직접 사용할 수 없습니다. 이를 해결하기 위해 문자열로 감싸서("ClassName") 사용합니다.
FasAPI Swagger UI에서 단일조회 todo_id 를 사용했는데, 입력값에 1을 넣으니 오류가 뜹니다 ㅠ
0
86
2
DB 질문
0
80
2
Post API 강의 질문
0
54
2
post 작성 오류
0
106
3
uvicorn 종료 문제
0
435
2
ORM 연관관계
0
109
2
Oracle DB 연결과 관련해 질문이 있습니다..
0
153
2
섹션 2, 3의 PATCH API의 차이점
0
132
1
ORM 테이블 생성
0
119
1
테스트 코드 오류
0
177
1
orm relationship 정의 중 해당 에러 발생 시 어떻게 고쳐야 하는걸까요
0
214
3
FastAPI 폴더 구조에 대해 질문이 있습니다.
0
407
2
질문 있습니다.
0
160
2
ORM 개념
0
133
1
mysql root 비밀번호 변경관련
0
294
2
[질문] patch API
0
151
3
디자인 패턴
0
128
1
main.py 리로드문제
0
235
2
인터프리터 오류
0
285
4
로그 저장에 대한 질문입니다.
0
100
1
Internal Server Error
0
239
2
PATCH API - 수정
0
198
2
파이참 임포트 문제
0
259
1
INFO sqlalchemy.engine.Engine ROLLBACK
0
215
1





