개발일기

Python - Type Hinting 본문

프로그래밍 언어/Python

Python - Type Hinting

Flashback 2021. 12. 1. 10:43
728x90
반응형

파이썬 3.5 버전을 시작으로 변수와 함수에 대해 Type Hinting( 타입 힌팅 ) 기능을 제공하기 시작하였다.

def test(value1, value2):
    return value1 + value2
# 2개의 값을 받아 더한 값을 반환해주는 함수
# 타입 힌팅을 적용하지 않은 일반적인 파이썬 함수

 

 

파이썬과 같은 동적 프로그래밍 언어에서는 변수에 대한 타입을 결정할 때, 컴파일 단계에서 결정하는 것이 아니라 실행되면서 변수 타입이 결정된다. 하지만 Java, C와 같은 정적 프로그래밍 언어는 컴파일 단계에서 변수 타입을 결정하기에 다음과 같이 소스코드에 변수의 타입에 에 관하여 정의를 해주어야 한다. 

String value1 = "변수1입니다";
String value2 = "변수2입니다";

소스코드에 문자형으로 정의하였지만 변수값에 정수형이 들어가게 되면 타입 불일치와 같은 에러를 뿜어내게 된다.

 

이러한 타입 유연성으로 인해 변수 선언 단계에서는 유용하게 사용할 수 있겠지만, 프로젝트의 규모가 커질수록 이러한 장점이 단점으로 바뀌어 나타날 수도 있다. 이러한 점을 방지하고자 파이썬 3.5버전을 시작으로 Type Hinting( 타입 힌팅 ) 기능을 제공하기 시작했다.

 

 

타입 힌팅 적용

def test(value1: int, value2: int) -> int:
    return value1 + value2
# 2개의 값을 받아 더한 값을 반환해주는 함수

타입 힌팅 기능의 적용은 단순하게 변수명 뒤에 해당 변수에 할당될 변수값의 타입을 명시하는 것이다. 함수의 시작점인 콜론 부분 뒤에 붙은 ' -> int '는 함수의 반환타입을 명시하고 있다. 즉, 위의 함수를 살펴보았을 때, test라는 함수에 사용되는 value1과 value2 라는 함수 인자값은 각각 int 형이고, 반환값은 int 형이라는 것을 뜻한다.

 

 

타입스크립트와의 차이점

타입스크립트는 타입을 제시했을 때, 해당 타입과 일치하지 않는 값이 변수에 할당되면 타입 에러가 발생하게 된다. 하지만 파이썬은 타입을 강제하는 것이 아닌 이러한 타입일 것이라는 '힌트'를 제공하는 것에 그치기 때문에 타입 에러가 발생하지 않는다.

728x90
반응형
Comments