짧은하루

python typing (Tuple, Union, Optional 의미) 본문

Language/python

python typing (Tuple, Union, Optional 의미)

짧은하루 2021. 9. 23. 18:29

코드를 짤 때 typing을 해주면 가독성이 증가합니다.

주로 사용하는 타입 힌트 몇가지를 소개합니다.

typing.Tuple

Tuple[X, Y]는 첫 번째 항목의 type이 X이고 두 번째 항목의 type이 Y인 두 항목의 튜플 형태를 나타냅니다.

예를 들어, Tuple[int, float, str]은 튜플의 첫번째 인자는 int, 두번째 인자는 float, 세번째 인자는 str 임을 의미합니다.

빈 튜플은 Tuple[()]로 쓸 수 있습니다.

typing.Union

Union[X, Y]는 X 또는 Y를 의미합니다.

예를 들어 Union[int, str] 형태로 사용 가능합니다.

typing.Optional

Optional[X]는 X 또는 None과 동일합니다 ( or Union[X, None]과 동일)

기본값이 정해지지 않은 파라미터에 사용하는 것이 적합합니다.

예를 들어, 아래 경우는 기본값을 갖기 때문에 Optional이 아니라 그냥 int가 적합합니다.

def foo(arg: int = 0):

 

하지만 만약 인자가 명시적인 None 값을 가지면 인자가 선택적인지와 관계없이 Optional을 사용하는 것이 적합합니다.

def foo(arg: Optional[int] = None):

 


더 많은 타입 힌트는 아래 문서를 참고해주세요.

https://docs.python.org/ko/3/library/typing.html#typing.Union

반응형
Comments