프로그래밍/Python

파이썬 - Function annotation ("->")

Terry Cho 2025. 3. 20. 14:41

Python Function Annotations (100줄 이내 설명)

Python Function Annotations는 함수 매개변수와 반환 값에 대한 타입 힌트 및 메타데이터를 제공하는 기능입니다. Python 3.5+ 부터 사용 가능하며, def 키워드 함수 정의 시 콜론 : 뒤에 표현식을 사용하여 어노테이션을 추가합니다.

핵심은 리턴 타입을 강제하는 것이 아니라, 개발자나 IDE 와 같은 도구에게 가독성을 높이기 위한 방법이다. 

 

문법:

def function_name(param1: type_hint, param2: type_hint = default_value) -> return_type_hint:
    # 함수 내용
    return value
  • param1: type_hint: 매개변수 param1에 대한 타입 힌트
  • param2: type_hint = default_value: 매개변수 param2에 타입 힌트 및 기본값 설정
  • -> return_type_hint: 함수 반환 값에 대한 타입 힌트

예제:

def greet(name: str, greeting: str = "Hello") -> str:
    """사람에게 인사하는 함수."""
    return f"{greeting}, {name}!"

print(greet("Alice"))       # 출력: Hello, Alice!
print(greet("Bob", "Hi"))  # 출력: Hi, Bob!

주요 목적 및 장점:

  1. 코드 가독성 향상: 함수 시그니처를 명확히 보여주어 코드 이해도를 높입니다.
  2. 정적 타입 검사: mypy 같은 도구로 타입 에러를 사전 검출, 코드 품질 향상.
  3. IDE 지원: IDE 자동 완성 및 오류 표시 기능 강화, 개발 생산성 향상.
  4. 문서화: 함수 인터페이스 명확화, 자동 문서 생성 도구 활용 용이.

중요 포인트:

  • 런타임에 강제되지 않음: Python 인터프리터는 어노테이션을 무시하고 실행합니다.
  • 타입 힌트는 "힌트"일 뿐: 타입 불일치해도 런타임 에러는 발생하지 않습니다.
  • 정적 분석 도구 활용 필수: mypy 등을 사용하여 타입 힌트의 효과를 봐야 합니다.
  • 어노테이션은 임의의 표현식 가능: 타입 힌트 외 다른 메타데이터도 표현 가능하지만, 타입 힌트 용도로 주로 사용됩니다.

결론: Function Annotations는 Python 코드의 품질 향상에 기여하는 유용한 기능입니다. 타입 힌트를 적극 활용하고 정적 분석 도구를 함께 사용하는 것이 중요합니다.