python을 사용한 프로젝트를 진행하는 와중 다른 분들의 코드를 리뷰하다가 type hint를 적용하는 사례를 보게 되었다.
앞으로 협업을 하게 된다면 필요하게 될 것 같아 알아보기로 했다.
python은 동적(dynamic) 프로그래밍 언어로서 인터프리터(interpreter)가 코드를 실행하면 타입(type)을 사용자가 지정하지 않고 자동으로 구분한다.
이러한 파이썬의 특성은 빠르고 가벼운 개발을 할 때는 장점이 되지만 좀 더 큰 규모의 프로젝트를 진행하게 되면 내가 작성한 코드를 상대방이 이해하는데 불친절한 요소가 되고 결국 오류를 일으킬 수도 있다.
좀 더 협업에 어울리고 친절한 코드를 작성하기 위해 type hint는 python 3.5버전에 추가되었다.
type hint는 개발자가 읽을 때 도움을 주는 용도이지 type hint를 따르지 않았다고 해서 오류가 발생하지는 않는다.
:
을 붙이고 타입을 명시한다.name: str = "sony"
age: int = 27
->
를 사용한다.def stringify(num: int) -> str:
return str(num)
def plus(num1: int, num2: float = 3.5) -> float:
return num1 + num2
from typing import List, Set, Dict, Tuple
num: List[int] = [1]
unique_nums: Set[int] = {6, 7}
vision: Dict[str, float] = {'left': 1.0, 'right': 0.9}
john: Tuple[int, str, List[float]] = (25, "John Doe", [1.0, 0.9]
class User:
...
def find_user(id: str) -> User:
...
def create_user(user: User) -> User:
...