[Python] Library | 11. typing

2026. 4. 8. 11:10·Language/Python
728x90

typing은 Python에 타입 힌트를 추가하여 코드의 가독성을 높이고, 버그를 사전에 예방할 수 있도록 도와주는 라이브러리입니다.

 

Python은 실행 전까지 변수의 타입을 체크하지 않는 동적 타이핑을 사용하지만, typing을 쓰면 코드를 실행하지 않고도 mypy 같은 정적 분석 도구를 통해 오류를 잡아낼 수 있습니다.

 

단, 3.9 버전 이상 부터 기본적인 타입에 대해서는 typing 없이도 직접 타입을 명시할 수 있습니다.

def process_scores(names: list[str], scores: dict[str, int]) -> float:
    return sum(scores.values()) / len(names)

타입 종류

아래는 typing에서 지원하는 타입들에 대한 목록입니다.

타입 기능 예시
Annotated 부가정보 Annotated[int, "range(0, 100)"]
Any 타입 제한 없음 Any
AsyncGenerator 비동기 제네레이터.
await 함수 실행 + yield 반환 모두
시행하는 함수의 반환 타입으로 사용
AsyncGenerator[Event, None]
Callable 호출 가능한 값. 주로 함수 Callable[[int, int], int]
Dict 딕셔너리 Dict[str, Any]
List 리스트 List[str]
Literal 특정 값 Literal["A", "Running", "light"]
Optional None이 될 수도 있는 값 Optional[int]

제네릭 타입

데이터 구조를 먼저 선언한 뒤, 구조 내부에 들어갈 타입은 나중에 결정하고 싶을 때 사용합니다. TypeVar와 함께 쓰입니다.

from typing import TypeVar, Generic

T = TypeVar('T')  # 이제부터 T는 타입을 의미함

class Box(Generic[T]):  # 클래스 내의 T는 나중에 사용자가 지정한 타입이 들어감
    def __init__(self, content: T):
        self.content = content

int_box = Box[int](10)  # 이제 T는 int를 의미함
728x90

'Language > Python' 카테고리의 다른 글

[Python] Uv에 대하여  (1) 2026.04.09
[Python] Library | 10. logging  (0) 2026.03.26
[Python] Library | 09. dotenv  (0) 2026.03.26
[Python] Syntax | 04. import  (0) 2026.02.17
[Python] Syntax | 03. Decorator(@)  (0) 2026.02.16
'Language/Python' 카테고리의 다른 글
  • [Python] Uv에 대하여
  • [Python] Library | 10. logging
  • [Python] Library | 09. dotenv
  • [Python] Syntax | 04. import
Rayi
Rayi
  • Rayi
    아카이브
    Rayi
  • 전체
    오늘
    어제
    • 분류 전체보기 (297)
      • CS (40)
        • CV (2)
        • PS (37)
      • Reveiw (19)
        • Paper (19)
        • Github (0)
      • ML (13)
        • Pytorch (5)
      • Language (72)
        • Python (21)
        • JavaScript (32)
        • TypeScript (16)
        • C++ (3)
      • IDE (12)
      • Git (13)
      • Frontend (77)
        • React (8)
        • ReactNative (6)
        • SolidJS (20)
        • CSS (12)
      • Backend (47)
        • DB (18)
        • Node.js (11)
        • Python (3)
      • UI (3)
      • Automation (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    mongo
    postgresql
    nodejs
    modal
    deploy
    CSS
    GAN
    js
    figma
    CV
    PyTorch
    ML
    SOLID
    react
    ts
    CS
    vscode
    PRISMA
    ps
    API
    backend
    Express
    DB
    python
    Three
    Git
    ReactNative
    review
    FastAPI
    frontend
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.5
Rayi
[Python] Library | 11. typing
상단으로

티스토리툴바