que estaba teniendo problemas para implementar namedtuple._replace()
, así que copiar el código justo al lado de la documentación:Python: namedtuple._replace() no funciona como descrbed en la documentación
Point = namedtuple('Point', 'x,y')
p = Point(x=11, y=22)
p._replace(x=33)
print p
y tengo:
Point(x=11, y=22)
en lugar de:
Point(x=33, y=22)
como se muestra en el doc.
estoy usando Python 2.6 en Windows 7
¿Qué está pasando?
Esto funciona de la misma manera que str.replace(). Ambas cadenas y tuplas con nombre son inmutables, por lo que sus métodos de reemplazo producen * valores * nuevos sin modificar el valor anterior. La solución a su problema es guardar el nuevo resultado en una variable. –
Una gran pregunta, si no fuera por el simple hecho de que todo el mundo que quiera "modificar" una tilde nombrada va a tropezar con esto en algún momento. – mbarkhau