Examples for named tuple subclassing should include __slots__
diff --git a/Lib/collections.py b/Lib/collections.py
index a234b44..47b0397 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -118,17 +118,19 @@
# test and demonstrate ability to override methods
class Point(namedtuple('Point', 'x y')):
+ __slots__ = ()
@property
def hypot(self):
return (self.x ** 2 + self.y ** 2) ** 0.5
def __str__(self):
return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot)
- for p in Point(3,4), Point(14,5), Point(9./7,6):
+ for p in Point(3, 4), Point(14, 5/7.):
print p
class Point(namedtuple('Point', 'x y')):
'Point class with optimized _make() and _replace() without error-checking'
+ __slots__ = ()
_make = classmethod(tuple.__new__)
def _replace(self, _map=map, **kwds):
return self._make(_map(kwds.get, ('x', 'y'), self))