Answers:
从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及更高版本中存在
GeoPoint = NamedTuple('GeoPoint', [('longitude', float), ('latitude', float)])
那我试试地理=的GeoPoint(**数据),其中数据包含所需的密钥和值是字典decimal.Decimal
,并没有强制转换为浮动情况;(无typerror要么:( :(所以这是如何typing.NamedTuple
工作看?要点.github.com / andilabs / 15002176b2bda786b9037077fa06cc71