Python/파이썬 기초

파이썬 변수/함수 타입 명시 방법(Type Hints)

jimmy_AI 2022. 11. 15. 15:05
반응형

Python Type Hints

파이썬에서 코드 작성 시에 변수 및 함수 input/output 자료형에 대해

알림 기능을 해줄 수 있는 Type Hints 기능에 대하여 살펴보도록 하겠습니다.

 

 

변수 선언 시 타입 명시 방법

파이썬에서는 변수의 자료형에 제한이 없어 기존의 방법대로 변수를 선언할 경우 아래처럼

기존 자료형과 다른 타입의 값을 넣는 것에 제약이 없습니다.

a = "abcde" # 문자열로 선언된 변수 a

a = 400 # 정수형 등 다른 자료형의 값을 할당하는 것에 제약이 없음

 

만일 문자열로 선언된 변수에 대하여 문자열이 아닌 다른 타입의 값으로 재할당될 경우

경고 메시지를 주고 싶다면 아래와 같이 Type Hints 방법을 적용할 수 있습니다.

# 변수명: 자료형 = 값
a: str = "abcde"

b: float = 2.5

c: list = [1, 3, 5]

 

위처럼 선언 후 다른 타입의 값으로 재할당을 시도할 경우 에디터에서 경고 메시지

띄워서 주의를 시켜줍니다.

다만, 위와 같이 코드가 작성된 경우에도 경고 메시지만 띄우지

오류가 발생하는 것은 아니라서 코드 실행 자체는 가능하므로 유의해주셔야 합니다.

 

 

변수 선언 시 Typing 모듈을 활용하여 내부 값 자료형 명시

코드에서 자료형 명시 시에 List, Dict 등 첫 글자가 대문자인 경우를 보셨을 수도 있을텐데

리스트 내부 값들의 자료형이나 딕셔너리 key, value의 자료형을 명시하기 위하여

typing 모듈의 기능을 활용한 경우입니다.

from typing import List, Dict

c: List[int] = [1, 3, 5]

d: Dict[int, str] = {1: 'a', 2: 'b'}

 

이 경우는 에디터에서 내부 자료형의 값까지 체크하여 경고 메시지를 띄워줍니다.

(역시 실행 자체는 정상적으로 가능합니다.)

 

반응형

 

함수 선언 시 input, output 타입 명시 방법

함수 선언 시에는 input 변수 각각과 output에 대한 타입을 지정하는 것이 가능합니다.

def 함수명(변수명: 타입, ...) -> return 값 타입: 형태로 선언할 수 있는데,

함수에서 Type Hints를 사용한 예시 코드는 다음과 같습니다.

def add(a: int, b: int) -> int:
    return a + b

arguments인 a와 b, 그리고 return 값 모두 int 자료형으로 선언하도록

명시를 해주었습니다.

 

이를 어길 경우 에디터에서 경고 알림이 출력되며,

마찬가지로 실행 자체는 가능합니다.

 

함수 선언 시 input, output 중 일부 변수의 타입만 명시해주거나

typing 모듈의 기능을 활용하여 명시하는 등의 설정도 가능합니다.

from typing import List

# input의 일부 변수만 타입을 명시한 경우
def mul(a: float, b):
    return a * b

# typing 모듈의 기능을 활용하여 입력/출력 값들의 타입을 명시한 경우
def add_list(a: List[int], b: List[int]) -> List[int]:
    if len(a) != len(b):
        return [-1]

    result = []
    for i in range(len(a)):
        result.append(a[i] + b[i])
    return result