타입 어노테이션을 사용하다 보면 리스트, 사전, 터플, 세트와 같은 파이썬 내장 자료 구조에 대한 타입을 명시해야 할 때가 있습니다. 이럴 때는 typing 모듈에서 제공하는 List
, Dict
, Tuple
, Set
를 사용하여 타입 어노테이션을 추가하면 됩니다.
`from typing import List
nums: List[int] = [1, 2, 3]`
countries: Dict[str, str] = {"KR": "South Korea", "US": "United States", "CN": "China"}`
`from typing import Tuple
user: Tuple[int, str, bool] = (3, "Dale", True)`
`from typing import Set
chars: Set[str] = {"A", "B", "C"}`
재할당이 불가능한 변수, 즉 상수에 대한 타입 어노테이션을 추가할 때는 typing 모듈의 Final
을 사용합니다.
`from typing import Final
TIME_OUT: Final[int] = 10`
여러 개의 타입이 허용될 수 있는 상황에서는 typing 모듈의 Union
을 사용할 수 있습니다.
`from typing import Union
def toString(num: Union[int, float]) -> str: return str(num)`
`>>> toString(1) '1'
toString(1.5) '1.5'`
typing 모듈의 Optional
은 None
이 허용되는 함수의 매개 변수에 대한 타입을 명시할 때 유용합니다.
def repeat(message: str, times: Optional[int] = None) -> list: if times: return [message] * times else: return [message]
위 예제에서, Optional[int]
는 Union[int, None]
과 동일한 효력을 갖습니다.
파이썬에서는 함수를 일반 값처럼 변수에 저장하거나 함수의 인자로 넘기거나 함수의 반환값으로 사용할 수 있습니다. typing 모듈의 Callable
은 이러한 함수에 대한 타입 어노테이션을 추가할 때 사용합니다.