次のコードを検討してください。
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)
EditPython 3.7、 dataclasses
(your = IDEは静的型チェックのためにそれらをまだサポートしていないかもしれません):
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int = 1 # Set default value
Point(3) # -> Point(x=3, y=1)
ドキュメントから
namedtuple
の型付きバージョン。
>>> import typing
>>> Point = typing.NamedTuple("Point", [('x', int), ('y', int)])
これはPython 3.5以降でのみ存在します