개발언어 Back-End/Python

타입 힌트 Callable 그리고 여러 유형의 반환 값을 위한 Union

bluebamus 2023. 4. 9.

Callable이란?

Python의 타이핑 모듈에서 콜러블은 함수나 메서드를 나타내는 유형 힌트입니다. 호출 가능 유형 힌트는 함수 인수 또는 반환 값의 예상 유형을 지정하는 데 사용됩니다. 하나 이상의 형식 힌트를 인수로 사용하는 일반 형식 힌트로 정의됩니다.

예를 들어 정수를 받아들이고 문자열을 반환하는 함수인 두 개의 인수를 사용하는 함수를 지정하려는 경우 다음 구문을 사용할 수 있습니다.

 

from typing import Callable

def my_func(f1: Callable[[int], str], f2: Callable[[int], str]) -> str:
    ...

- [int]는 입력 인자 타입

- str은 return 인자 타입

 

- '-> str' 유형 힌트는 my_func 함수의 예상 반환 유형을 나타내는 데 사용됩니다. 이 경우 함수가 str 유형의 값을 반환해야 함을 나타냅니다.

- Callable[[int], str]의 str과 '-> str:' 의 타입은 동일해야 합니다.

 

Return 타입이 여러개인 경우

from typing import Callable, List, Union

def process_functions(funcs: List[Callable[[int], Union[str, int]]]) -> List[Union[str, int]]:
    ...

위의 코드에서 process_functions 함수는 함수 목록을 인수로 사용하며 각 함수는 int 인수를 사용하고 str 또는 int를 반환합니다. Union 유형 힌트는 각 함수의 반환 유형이 str 또는 int일 수 있고 함수 전체가 str 또는 int일 수 있는 값 목록을 반환함을 나타내는 데 사용됩니다. 

댓글