programing

Python의 TypeHinting 튜플

copysource 2023. 8. 23. 23:35
반응형

Python의 TypeHinting 튜플

다음과 같이 Python에서 튜플을 입력하고 싶을 때:

def func(var: tuple[int, int]):
    # do something

func((1, 2))    # would be fine
func((1, 2, 3)) # would throw an error

튜플에 있는 항목의 정확한 개수를 제공해야 합니다.이는 목록 유형 힌트와 다릅니다.

def func(var: list[int]):
    # do something

func([1])       # would be fine
func([1, 2])    # would also be fine
func([1, 2, 3]) # would also be fine

그것은 결과적으로, 어떤 면에서, 튜플의 종류 때문입니다.그것들은 변경되지 않도록 설계되었기 때문에, 당신은 그 안에 있는 항목의 양을 하드 코딩해야 합니다.

그래서 제 질문은 튜플 타입 힌트의 항목 수를 유연하게 만드는 방법이 있을까요?저는 그런 것을 시도했지만 효과가 없었습니다.

def func(var: tuple[*int]):

, 튜플 유형 힌트의 항목 수를 유연하게 설정할 수 있습니다.

from typing import Tuple

def func(var: Tuple[int, ...]):
    pass

문서에서: https://docs.python.org/3/library/typing.html#typing.Tuple

동종 유형의 변수 길이 튜플을 지정하려면 리터럴 생략형을 사용합니다.Tuple[int, ...]평원Tuple와 동등합니다.Tuple[Any, ...]그리고 차례로tuple.

PEP 585부터는 내장 타이핑을 사용할 수 있습니다.typing모듈, 그러니까 파이썬 3.9부터 시작해서,Tuple[...]을 위해 더 이상 사용되지 않습니다.tuple[...].예.

def func(var: tuple[int, ...]):
    pass

언급URL : https://stackoverflow.com/questions/47533787/typehinting-tuples-in-python

반응형