PHpullh
학습 라이브러리/Python/TypeVar 제네릭

PYTHON · 기초 문법

TypeVar 제네릭

TypeVar로 제네릭 함수와 클래스를 만들어 타입 안전한 코드를 작성합니다.

기초 문법고급TypeVarGeneric제네릭typing

핵심 설명

TypeVar로 제네릭 함수와 클래스를 만들어 타입 안전한 코드를 작성합니다.

Python code

from typing import TypeVar, Generic

T = TypeVar('T')
N = TypeVar('N', int, float)  # 제한된 TypeVar

# 제네릭 함수
def first(items: list[T]) -> T:
    return items[0]

print(first([1, 2, 3]))       # 1 (int)
print(first(["a", "b"]))      # "a" (str)

# 제한된 TypeVar
def add_nums(a: N, b: N) -> N:
    return a + b

print(add_nums(1, 2))       # 3
print(add_nums(1.5, 2.3))   # 3.8

# 제네릭 클래스 (Python 3.12+는 class Box[T]: 가능)
class Box(Generic[T]):
    def __init__(self, item: T) -> None:
        self.item = item
    def get(self) -> T:
        return self.item

box = Box(42)
print(box.get())  # 42

학습 팁

Python 3.12+에서는 def first[T](items: list[T]) -> T: 구문으로 더 간결하게 작성할 수 있습니다.

주의할 점

TypeVar("T")의 문자열 인자는 반드시 변수명과 같아야 합니다. T = TypeVar("U")는 혼란을 일으킵니다.

자주 묻는 질문

TypeVar 제네릭란 무엇인가요?

TypeVar 로 제네릭 함수와 클래스를 만들어 타입 안전한 코드를 작성합니다.

TypeVar 제네릭 학습 시 주의할 점은 무엇인가요?

TypeVar("T") 의 문자열 인자는 반드시 변수명과 같아야 합니다. T = TypeVar("U") 는 혼란을 일으킵니다.

Continue Learning

Python 학습을 이어가세요

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