<NAVER boostcourse>
에서 수강한 강의를 바탕으로 정리한 내용입니다.동적 타이핑 언어인 파이썬은 처음 함수를 사용하는 사용자가 interface를 알기 어렵다는 단점이 있음
python 3.5 버전 이후로는 PEP 484에 기반하여 type hint 기능 제공 (=type annotation)
type hints의 장점
1. 사용자에게 인터페이스를 명확하게 알려줄 수 있다.
2. 함수의 문서화 시 parameter에 대한 정보를 명확히 알 수 있다.
3. mypy 또는 IDE, linter 등을 통해 코드의 발생 가능한 오류를 사전에 확인할 수 있음
4. 시스템의 전체적인 안정성을 확보할 수 있음
변수 type hint
변수에 대한 타입 힌팅/어노테이션 방법
변수 이름 뒤 :
을 붙이고 타입을 명시하면 된다.
name: str = "soomin lee"
age: int = 28
e-mail: list = ['soominlee@domain.com', 'ssuminmin95@naver.com']
함수 type hint
함수에 대한 타입 힌팅/어노테이션 방법
(1) 인자(parameter)에 대한 힌팅 : 인자 이름 뒤 :
붙이고 타입 명시
(2) 반환값에 대한 힌팅 : 인자 열거 후 괄호 뒤에 ->
를 붙이고 반환값 타입 명시
def type_hint_ex(name: str) -> str:
return 'returning string'
typing 모듈
typing이라는 라이브러리 모듈을 사용하여 타입 힌팅/어노테이션을 추가할 수 있다.
from typing import List, Set, ,Dict, Tuple
# int type의 요소를 갖는 list type hinting
num: List[int]
dict_val: Dict[str, int] = {'score': 10, 'game': 1}
tup_val: Tuple[int, str, List[float]] = (25, 'john', [0.1, 10.0])
사용자 정의 타입 헌팅
사용자가 정의한 클래스를 하나의 타입으로 간주하여 동일한 방식으로 타입 힌팅/어노테이션을 추가할 수 있다.
MYpy란?
파이썬 도구 중 하나로, 파이썬에서 정적 타입 체크를 하는 도구.
mypy를 사용하면 파이썬 인터프리터가 잡지 못하는 타입 버그를 쉽게 찾을 수 있다.
linter란?
*lint: 소스코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 구조체 표시(flag)를 달아놓기 위한 도구들을 말한다. 이 용어는 C언어 소스 코드를 검사하는 유닉스 유틸리티에서 왔다.
린터 : 코드 린트를 하기 위한 도구