[python] Typing 모듈

gunny·2024년 4월 1일
0

Python

목록 보기
10/29

python Typing 모듈

  • Typing 모듈은 python 3.5 부터 도입된 모듈로 타입 힌트(type hint)를 제공하는데 사용된다.
  • 이 모듈은 함수의 매개변수와 반환 값, 변수, 클래스 등의 타입을 명시적으로 지정해 코드의 가독성을 향상시키고 타입 검사를 수행할 수 있게 해준다.

typing 모듈에서 사용되는 클래스와 함수

Any : 모든 타입. 일반적으로 다른 타입 힌트를 사용하지 않을 때 사용

List : 리스트, List[int] 는 정수 값의 리스트

Tuple : 튜플, Tuple[int, str] 정수와 문자열을 각각 포함하는 튜플

Dict : 딕셔너리,Dict[str, int] 문자열 키와 정수값으로 이루어진 딕셔너리

Set : 집합, set[float], 부동 소수점을 가지는 집합

Deque : 양방향 큐(deque)

Union : 여러 타입 중 하나일 수 있는 값, Union[int, float] 는 정수 또는 부동소수점의 값

Optional : 값을 가질 수도 있고 'None' 일 수도 있는 값,
Optional[str]은 문자열 혹은 'None'의 값

장점

  1. 명시적인 타입 힌트 제공 : Dict, List, Deque 등을 사용해서 변수의 타입을 명시적으로 지정함으로써 코드의 가독성을 향상 시킨다.
    이를 통해 코드를 이해하기 쉽고, 타입 오류를 미리 방지한다.

  2. 코드 의도 명확화 : Dict, List, Deque를 사용해 변수의 의도를 명확하게 전달한다. 명확성은 코드를 유지 보수하고 변경할 때 협업하는 개발자들에게 도움이 된다.

  3. IDE 및 정적 분석 도구의 지원 : Dict, List, Deque와 같은 타입 힌트를 사용하면 IDE와 같은 도구가 코드를 더 잘 이해하고 분석할 수 있다. 코드를 작성하고 디버깅하는데 도움이 된다.

  4. 타입 검사 도구의 지원 : Dict, List, Deque 를 사용해서 변수의 타입을 명시적으로 지정하면 타입 검사 도구를 사용해 코드를 검사할 수 있다. 이를 통해 코드의 안정성을 높인다.

typing 모듈의 이러한 클래스를 사용해 함수 시그니처, 변수 선언, 클래스 정의 등에서 타입 힌트를 명시적으로 지정하여 코드의 가독성을 높이고 디버깅을 쉽게하고 타입 검사 도구를 활용해 코드의 안정성을 높일 수 있다.

예시

예를 들어 데이터베이스에서 데이터를 조회하는 함수를 작성하는 경우
이 함수는 주어진 사용자 ID 에 해당하는 사용자 정보를 조회하고, 사용자가 존재하지 않을 경우 None을 반환한다.

from typing import Optional

def get_user_into(user_id:int) -> Optional[dict]:
	"""
    주어진 사용자 ID에 해당하는 사용자 정보를 데이터베이스에서 조회합니다.
    
    :param user_id : 조회할 사용자의 ID
    :type user_id : int
    :return : 사용자 정보 딕셔너리 또는 None(사용자가 존재하지 않을 경우)
    """
    
    # 데이터베이스에서 사용자 정보 조회
    user_info = database.query.user(user_id)
    
    if user_info is None:
    	return None
        
    return user_info
profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글