当前位置:  开发笔记 > 编程语言 > 正文

在namedtuple中输入提示

如何解决《在namedtuple中输入提示》经验,为你挑选了2个好方法。

请考虑以下代码:

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

上面的代码只是一种证明我想要实现的目标的方法.我想namedtuple用类型提示.

你知道如何达到预期效果的优雅方式吗?



1> Wolfgang Kue..:

从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,考虑使用数据类(您的IDE可能尚不支持它们进行静态类型检查):

from dataclasses import dataclass

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

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


@JohnE; OP专门询问命名元组。是的,通过数据类可以更好地服务于命名元组的许多用例。但是要引用出色的[为什么不命名元组](http://www.attrs.org/en/stable/why.html#namedtuples):_如果您想要一个带有名称的元组,则一定要:选择一个namedtuple_

2> Bhargav Rao..:

您可以使用 typing.NamedTuple

来自文档

类型版本namedtuple.

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

这只出现在Python 3.5之后


@andi打字不会强制执行或转换变量,afaik.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有