namedtuple._replace() funktioniert nicht wie in der Dokumentation beschrieben

Ich Schwierigkeiten bei der Umsetzung namedtuple._replace(), also kopierte ich den code direkt aus der Dokumentation:

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

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

p._replace(x=33)

print p

und ich bekam:

Point(x=11, y=22)

statt:

Point(x=33, y=22)

wie gezeigt in der doc.

Ich bin mit Python 2.6 auf Windows 7

Was ist Los?

  • Dies funktioniert auf die gleiche Weise, wie str.replace() funktioniert. Streicher und benannte Tupel sind unveränderlich, so dass Ihre Ersatz-Methoden produzieren neue Werte, wobei der alte Wert unverändert. Die Lösung für Ihr problem ist, speichern Sie das neue Ergebnis auf eine variable.
  • Gute Frage, wenn aus keinem anderen Grund als dem, dass jeder Wunsch der "ändern" eine namedtuple geht die Reise über das irgendwann.
Schreibe einen Kommentar