[python] namedtuple에 힌트 입력

다음 코드를 고려하십시오.

from collections import namedtuple
point = namedtuple("Point", ("x:int", "y:int"))

위의 코드는 내가 달성하고자하는 바를 보여주는 방법 일뿐입니다. namedtuple타입 힌트 로 만들고 싶습니다 .

의도 한대로 결과를 얻는 방법을 알고 있습니까?



답변

3.6 이후 형식화 된 명명 된 튜플에 대해 선호되는 구문은 다음과 같습니다.

from typing import NamedTuple

class Point(NamedTuple):
    x: int
    y: int = 1  # Set default value

Point(3)  # -> Point(x=3, y=1)

편집
Python 3.7부터 사용을 고려 dataclasses하십시오 (IDE가 아직 정적 유형 검사를 지원하지 않을 수 있음).

from dataclasses import dataclass

@dataclass
class Point:
    x: int
    y: int = 1  # Set default value

Point(3)  # -> Point(x=3, y=1)


답변

당신이 사용할 수있는 typing.NamedTuple

문서에서

버전 입력 된 의를 namedtuple.

>>> import typing
>>> Point = typing.NamedTuple("Point", [('x', int), ('y', int)])

이것은 Python 3.5 이상에서만 존재합니다.


답변