namedtuple._replace()不符合文档描述
我在使用 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)
就像文档里显示的那样。
我是在Windows 7上用Python 2.6。
这是怎么回事呢?
5 个回答
13
namedtuple._replace()
这个方法会返回一个新的元组,而原来的元组不会被改变。
21
元组是不可变的,也就是说一旦创建就不能更改。_replace()
方法会返回一个新的元组,里面包含你所做的修改:
p = p._replace(x=33)
125
是的,它确实如此,功能和文档上说的一样。
._replace
返回一个新的命名元组,它不会改变原来的那个,所以你需要这样写:
p = p._replace(x=33)
更多信息请查看这里:somenamedtuple._replace(kwargs)。