namedtuple._replace() doesn't work as described in the documentation
Solution 1:
Yes it does, it works exactly as documented.
._replace
returns a new namedtuple, it does not modify the original, so you need to write this:
p = p._replace(x=33)
See here: somenamedtuple._replace(kwargs) for more information.
Solution 2:
A tuple is immutable. _replace()
returns a new tuple with your modifications:
p = p._replace(x=33)
Solution 3:
namedtuple._replace()
returns a new tuple; the original is unchanged.