namedtuple.\u replace()无法按文档中所述工作

2024-06-17 12:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在实现namedtuple._replace()时遇到问题,所以我直接从文档中复制了代码:

Point = namedtuple('Point', 'x,y')

p = Point(x=11, y=22)

p._replace(x=33)

print p

我得到了:

Point(x=11, y=22)

而不是:

Point(x=33, y=22)

如文件所示。

我在Windows7上使用Python2.6

怎么了?


Tags: 文件代码文档namedtuplereplacepointprintwindows7
3条回答

^{}返回一个新元组;原始元组不变。

元组是不可变的。_replace()返回一个包含您的修改的新元组:

p = p._replace(x=33)

是的,它确实如此,它的工作原理与文献完全一致。

._replace返回一个新的namedtuple,它不会修改原始的,因此您需要编写以下代码:

p = p._replace(x=33)

请看这里:somenamedtuple._replace(kwargs)了解更多信息。

相关问题 更多 >