타입힌트는 파이썬 3.5버전에서 나왔다.
말 그대로 힌트일 뿐이고 사용하지 않거나 적혀진 것과 다른 자료형을 넣는다고 해도 에러가 발생하진 않는다.
하지만 타입 힌트를 사용하면 코드의 가독성을 높여주고 어떤 자료형을 넣어야 하는지 어떤 자료형이 반환되는지 명확하게 알 수 있다.
python 3.5 버전에서는 함수의 반환값만 지원이 되었었다.
def hello(name: str) -> str:
return 'Hello' + name
python 3.6 버전에서는 변수에도 타입 힌트 표기가 가능해졌다.
def hello(name: str) -> str:
result: str = 'Hello' + name
return result
아래처럼 기존에 타입힌트를 사용하지 않을 때는 name의 자료형에 대해서 모른다. 타입힌트를 사용하면 자료형이 명확해지기 때문에 버그의 발생을 줄일 수 있다.
def hello(name):
result = 'Hello' + name
return result
int
, str
, float
같은 자료형은 타입 힌트를 적어주면 되지만, list
, tuple
, dict
자료형 같은 경우는 추가적인 정보가 필요하다. 어떤 type의 값들로 되어 있는지 명확하게 명시해주는 것이 좋다. typing
모듈을 사용하여 나타낼 수 있다.
from typing import Dict, List, Tuple
a: Dict[str, int] = {'a': 1, 'b': 3, 'e': 12}
b: List[bool] = [True, False, False]
c: Tuple[int, int, int] = (4, 1, 7)
list
, tuple
상관없는 자료형이라면 Sequence
를 사용하면 된다. 하지만 웬만해서는 정확하고 통일성 있게 하는 것이 좋다.list
의 경우 List[Any]
, 또는 List[Union[str, int]]
같은 방식으로 쓸 수 있다.