본문 바로가기
Python 문법/Python 기본 문법(3.10 기준)

[python3.10 기본] 14. 형 힌팅과 타입 검사

by cogito21_python 2024. 7. 2.
반응형

14.1 타입 힌트 문법

타입 힌트는 함수 인자와 반환값의 타입을 명시하는 방법입니다.

 

기본 타입 힌트

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

def greet(name: str) -> str:
    return f"Hello, {name}!"

리스트, 튜플, 딕셔너리 타입 힌트

from typing import List, Tuple, Dict

def process_list(data: List[int]) -> List[int]:
    return [x * 2 for x in data]

def process_tuple(data: Tuple[int, int]) -> int:
    return data[0] + data[1]

def process_dict(data: Dict[str, int]) -> int:
    return sum(data.values())

Optional 타입

from typing import Optional

def find_item(items: List[int], target: int) -> Optional[int]:
    try:
        return items.index(target)
    except ValueError:
        return None

유니언 타입

from typing import Union

def process_value(value: Union[int, str]) -> str:
    if isinstance(value, int):
        return f"Integer: {value}"
    elif isinstance(value, str):
        return f"String: {value}"

14.2 타입 검사 (mypy)

타입 검사를 수행하려면 mypy와 같은 도구를 사용할 수 있습니다. mypy는 정적 타입 검사를 통해 코드의 타입 오류를 미리 확인할 수 있게 도와줍니다.

 

mypy 설치

pip install mypy

타입 검사 실행

mypy script.py

 

예시 코드와 함께 타입 검사를 수행하는 방법을 살펴보겠습니다.

example.py

from typing import List

def sum_list(numbers: List[int]) -> int:
    return sum(numbers)

print(sum_list([1, 2, 3, 4, 5]))

타입 검사 실행

mypy example.py

타입 힌팅과 타입 검사를 통해 코드의 타입 안전성을 높이고, 잠재적인 버그를 줄일 수 있습니다.

예제

다음은 타입 힌팅과 타입 검사를 사용한 예제입니다.

 

type_hint_example.py

from typing import List, Tuple

def average(values: List[float]) -> float:
    return sum(values) / len(values)

def greeting(name: str) -> str:
    return f"Hello, {name}!"

def process_data(data: Tuple[int, int, int]) -> int:
    return sum(data)

values = [1.0, 2.5, 3.8]
print(average(values))

name = "Alice"
print(greeting(name))

data = (1, 2, 3)
print(process_data(data))

타입 검사 실행

mypy type_hint_example.py
반응형