변수의 사용가능한 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}
Type Annotation (9) - Generic Type (0) | 2022.05.25 |
---|---|
Type Annotation (8) - Final Type (0) | 2022.05.23 |
Type Annotation (6) - Class (0) | 2022.05.23 |
Type Annotation (5) - Optional (0) | 2022.05.22 |
Type Annotation (4) - Union (0) | 2022.05.22 |
댓글 영역