본문 바로가기

Code snippet

python , typing Annotated , function as argument

 

 

how to use Annotated[ some_data_type , some_function ]

 

from typing import Annotated


# 검증 함수 정의 , define validation function for Annotated type argument
def validate_positive(value: int) -> int:
    if value < 0:
        raise ValueError(f"Value must be positive, but got {value}")
    return value

# Annotated 타입 정의 , Define Annotated type
int_val = Annotated[int, validate_positive]


# 검증 함수 적용 예제, use int_val type
def process_value(value: int_val) -> None:
    validated_value = int_val.__args__[0](value)
    print(f"Processed value: {validated_value}")

try:
    # 유효한 값 예제, example of valid input value
    process_value(10)  # 출력: Processed value: 10

    # 유효하지 않은 값 예제, example of invalid input value
    process_value(-5)  # ValueError 예외 발생
except ValueError as e:
    print(e)  # 출력: Value must be positive, but got -5