Optional

hyuckhoon.ko·2023년 4월 19일
0

TIL

목록 보기
12/69

예시

1) 슬랙 라이브러리

class WebhookClient:
    logger = logging.getLogger(__name__)

    def __init__(
        self,
        url: str,
        timeout: int = 30,
        ssl: Optional[SSLContext] = None,
        proxy: Optional[str] = None,
        default_headers: Optional[Dict[str, str]] = None,
    ):
        self.url = url
        self.timeout = timeout
        self.ssl = ssl
        self.proxy = proxy
        self.default_headers = default_headers if default_headers else {}

2) 간단한 예시

from typing import Optional

def greet(name: Optional[str] = None) -> None:
    if name is None:
        print("Hello, World!")
    else:
        print(f"Hello, {name}!")

greet()  # Output: Hello, World!
greet("Alice")  # Output: Hello, Alice!

greet 함수는 name이란 파라미터를 갖고 있으며 Optional[str] 와 같이 표현되고 있다. name이 string이거나 None일 수 있음을 다른 개발자에게 알려준다.

설명

Optional은 python의 타입 힌팅 기능으로써, 명시된 타입이거나 None일 수 있음을 나타낸다. 런타임에 타임체크를 강제하진 못하지만, mypy와 같은 툴로 정적 타입을 검사할 때 타임 에러에 대한 경고를 받을 수 있다.

0개의 댓글