728x90
파이썬은 동적 타이핑 언어이지만, 타입 힌트(Type Hint)를 통해 변수나 함수의 입력과 출력 타입을 명시할 수 있습니다. 타입 힌트는 코드의 가독성을 높이고, 에디터 자동 완성 및 정적 분석 도구(mypy 등)의 도움을 받을 수 있도록 합니다.
● 변수에 타입 힌트 사용
name: str = "Alice"
age: int = 30
scores: list[int] = [90, 80, 70]
타입 힌트를 사용하면 변수의 예상 타입을 명확하게 알 수 있으며, 협업 시 유용합니다.
● 함수 인자와 반환값에 타입 힌트
def greet(name: str) -> str:
return f"Hello, {name}"
함수의 인자와 반환 타입을 명시함으로써, 함수의 사용법을 직관적으로 이해할 수 있습니다.
● Optional과 Union
Optional
은 값이 없을 수도 있음을 의미하고, Union
은 둘 이상의 타입을 허용합니다.
from typing import Optional, Union
def get_name(id: int) -> Optional[str]:
return "Alice" if id == 1 else None
def process(value: Union[int, str]):
print(value)
● 리스트, 딕셔너리 등의 제네릭 타입
Python 3.9 이상에서는 기본 자료형에 직접 타입을 지정할 수 있습니다.
data: list[str] = ["a", "b", "c"]
settings: dict[str, int] = {"retry": 3, "timeout": 5}
이전 버전에서는 List[str]
, Dict[str, int]
형식을 사용합니다.
● 타입 별칭과 Literal
from typing import Literal
Status = Literal["pending", "running", "done"]
def set_status(s: Status) -> None:
print(f"상태: {s}")
Literal은 허용 가능한 값을 제한할 수 있어 API 정의 등에 유용합니다.
● 마무리
타입 힌트는 정적 타입 체크와 도구 지원을 통해 개발의 생산성과 안정성을 높여줍니다. 대규모 프로젝트나 협업 환경에서 적극적으로 활용하는 것이 좋습니다. mypy, Pyright와 같은 도구를 사용하면 타입 검사 자동화를 더욱 효율화할 수 있습니다.
728x90
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter31. 데코레이터 중첩과 인자 전달 (0) | 2025.05.24 |
---|---|
[파이썬][중급] Chapter30. 고차 함수와 partial 함수 (0) | 2025.05.23 |
[파이썬][중급] Chapter28. 비동기 파일 및 네트워크 처리 (0) | 2025.05.23 |
[파이썬][중급] Chapter27. async/await와 asyncio 기초 (0) | 2025.05.23 |
[파이썬][중급] Chapter26. multiprocessing으로 병렬 처리 (0) | 2025.05.23 |