Python type hints, type annotation

soominlee·2022년 7월 26일
0

🐍 Python

목록 보기
4/14

*해당 게시글은 <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언어 소스 코드를 검사하는 유닉스 유틸리티에서 왔다.
린터 : 코드 린트를 하기 위한 도구

profile
Soominlee

0개의 댓글