Pulse 게시 ·

Python PEP 827, 입력에 따른 반환 타입 추론·모델 타입 변환 제안

Python이 9월 30일 공개한 Language Summit 회고에서 PEP 827의 타입 조작 제안을 소개했다. 조건식·컴프리헨션·멤버 조회로 함수 입력에 맞는 반환 타입과 CRUD용 모델 타입을 만들려는 구상이다. mypy 기반 시제품이 있으며, 런타임용 타입 주석 저장 방식은 메모리와 평가 속도를 놓고 논의 중이다.

조건부 타입, 컴프리헨션 타입, typing.Members를 통한 멤버 조회가 핵심 제안이며 새 키워드는 요구하지 않는다.

Public·Create·Update 같은 타입 변환으로 공개 필드만 반환하거나 수정용 필드를 선택 사항으로 만드는 용례를 제시했다.

Pydantic·FastAPI처럼 주석을 런타임에 쓰는 라이브러리를 위해 평가 전 표현을 보존할 방법이 필요하다.

문자열을 추가로 저장하는 방식은 빠르지만 메모리를 더 쓰고, 문자열과 클로저를 이용해 eval()하는 대안은 계산 비용이 크다. 제안의 채택이나 정식 제공은 확정되지 않았다.

ORM의 조회 필드나 수정 규칙을 타입에 반영하면, 같은 데이터 모델의 여러 정의를 따로 관리하는 부담을 줄일 수 있다.

원문