NamedTuple - 在运行时检查字段类型

问题描述 投票:0回答:1

如果传递给 NamedTuple 字段的值与声明的类型不匹配,是否有一个简洁的解决方案来引发错误?

在这个例子中,我故意传递了 page_count str 而不是 int。该脚本将继续向前传递错误值。

(我知道 linter 会引起您对错误的注意,但我在 NamedTuple 字段由从配置文件获取值的函数填充的情况下遇到了这种情况)。

我可以用条件检查每个值的类型,但它看起来并不干净。有任何想法吗?谢谢。

from typing import NamedTuple

class ParserParams(NamedTuple):

    api_url: str
    page_count: int
    timeout: float

parser_params = ParserParams(
    api_url='some_url',
    page_count='3',
    timeout=10.0,
)
python python-typing namedtuple
1个回答
1
投票

根据设计,Python 是一种动态类型语言,这意味着可以将任何值分配给任何变量。仅支持输入作为提示 - 错误可能会在您的 IDE 中突出显示,但它们不会强制执行任何操作。

这意味着如果您需要类型检查,您必须自己实现。从好的方面来说,这可能是自动化的,即仅实施一次,而不是针对每个字段单独实施。然而,

NamedTuple
不提供这种开箱即用的检查。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.