상세 컨텐츠

본문 제목

Type Annotation (7) - Type alias

개발/python-객체지향프로그래밍(OOP)

by Matthew0633 2022. 5. 23. 14:20

본문

변수의 사용가능한 type 이 많아 가독성이 떨어질 경우, alias 를 부여할 수 있다.

# https://mypy.readthedocs.io/en/stable/kinds_of_types.html#type-aliases
from typing import Union, List, Tuple, Dict, Optional

# type alias
Type_x = Union[int, Union[List[str], Tuple[int, ...]], Optional[Dict[str, float]]]

x: Type_x = 17

def cal(v: Type_x ) -> Type_x :
    return v

Dict alias : TypedDict

dict 의 경우는 class 를 활용하여 type alias 를 정의할 수 있다. TypedDict 를 상속받는 class 를 하나의 type alias로서 정의하고, 내부에 key 의 value 별로 hint 를 명시할 수 있다.

# dict alias (1)
ddd: Dict[str, Union[str, int]] = {"hello": "world", "world": "wow!!", "hee": 17}

# dict alias (2)
from typing_extensions import TypedDict

class Point(TypedDict):
    x: int
    y: float
    z: str
    hello: int


point: Point = {"x": 8, "y": 8.4, "z": "hello", "hello": 12}

관련글 더보기

댓글 영역