PHpullh

PYTHON · 기초 문법

Literal 타입

Literal로 함수 인자에 허용되는 구체적인 값을 제한하여 타입 안전성을 높입니다.

기초 문법고급Literaltyping타입overload

핵심 설명

Literal로 함수 인자에 허용되는 구체적인 값을 제한하여 타입 안전성을 높입니다.

Python code

from typing import Literal, get_args

Mode = Literal["read", "write", "append"]

def open_file(path: str, mode: Mode) -> str:
    return f"{path}를 {mode} 모드로 열기"

# 정상 호출
print(open_file("data.txt", "read"))

# 타입 체커가 오류 감지 (런타임은 통과)
# open_file("data.txt", "delete")  # mypy 에러!

# Literal 값 추출
print(get_args(Mode))  # ('read', 'write', 'append')

# Literal과 오버로드 결합
from typing import overload

@overload
def process(action: Literal["count"]) -> int: ...
@overload
def process(action: Literal["list"]) -> list: ...

def process(action):
    if action == "count":
        return 42
    return [1, 2, 3]

print(process("count"))  # 42

학습 팁

get_args(Mode)로 Literal에 정의된 모든 허용 값을 튜플로 추출할 수 있습니다.

주의할 점

Literal은 런타임에 값을 검증하지 않습니다. 런타임 검증이 필요하면 별도 조건문을 추가하세요.

자주 묻는 질문

Literal 타입란 무엇인가요?

Literal 로 함수 인자에 허용되는 구체적인 값을 제한하여 타입 안전성을 높입니다.

Literal 타입 학습 시 주의할 점은 무엇인가요?

Literal 은 런타임에 값을 검증하지 않습니다. 런타임 검증이 필요하면 별도 조건문을 추가하세요.

Continue Learning

Python 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.