From f5e8af1bb7e375e86298ae7a4ee5b6c3e8a22db4 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Mon, 7 Jan 2008 20:56:05 +0000 Subject: [PATCH] Use get() instead of pop() for the optimized version of _replace(). --- Doc/library/collections.rst | 2 +- Lib/collections.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index e797296418a..fb9b9589090 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -531,7 +531,7 @@ faster versions that bypass error-checking and localize variable access:: >>> class Point(namedtuple('Point', 'x y')): _make = classmethod(tuple.__new__) def _replace(self, _map=map, **kwds): - return self._make(_map(kwds.pop, ('x', 'y'), self)) + return self._make(_map(kwds.get, ('x', 'y'), self)) Default values can be implemented by using :meth:`_replace` to customize a prototype instance:: diff --git a/Lib/collections.py b/Lib/collections.py index c19821bb396..099cdd62bdf 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -130,7 +130,7 @@ if __name__ == '__main__': 'Point class with optimized _make() and _replace() without error-checking' _make = classmethod(tuple.__new__) def _replace(self, _map=map, **kwds): - return self._make(_map(kwds.pop, ('x', 'y'), self)) + return self._make(_map(kwds.get, ('x', 'y'), self)) print Point(11, 22)._replace(x=100)