You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

typing.NamedTuple.__eq__是否具备合理的内置实现?

typing.NamedTuple.eq 的内置实现说明

typing.NamedTuple 确实存在合理的内置__eq__实现,这个行为源自它的底层本质——用typing.NamedTuple定义的类是标准库tuple的子类,因此继承了元组的相等性比较逻辑。

它的比较规则很明确:两个NamedTuple实例会按顺序逐一比较所有字段的值,只有当所有对应字段的值都相等时,实例才被判定为相等,就像你提供的示例展示的那样:属性完全一致的实例返回True,任意字段值不同则返回False。

尽管官方文档没有单独针对__eq__做专门说明,但这个特性是基于其元组子类身份的自然继承,属于预期行为。

验证代码示例:

Python 3.10.6 (main, Aug 10 2022, 11:19:32) [GCC 12.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from typing import NamedTuple
>>> class Foo(NamedTuple):
...     bar: int
...     baz: str
...
>>> foobar1 = Foo(1, "bar")
>>> foobar2 = Foo(1, "bar")
>>> foobar3 = Foo(2, "bar")
>>> foobar1 == foobar2
True
>>> foobar1 == foobar3
False

内容的提问来源于stack exchange,提问作者user7018565

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 12:01:04