[Python-checkins] r59892 - in python/trunk: Doc/library/collections.rst Lib/collections.py

raymond.hettinger python-checkins at python.org
Thu Jan 10 20:15:10 CET 2008


Author: raymond.hettinger
Date: Thu Jan 10 20:15:10 2008
New Revision: 59892
Modified:
 python/trunk/Doc/library/collections.rst
 python/trunk/Lib/collections.py
Log:
Examples for named tuple subclassing should include __slots__
Modified: python/trunk/Doc/library/collections.rst
==============================================================================
--- python/trunk/Doc/library/collections.rst	(original)
+++ python/trunk/Doc/library/collections.rst	Thu Jan 10 20:15:10 2008
@@ -513,23 +513,24 @@
 a fixed-width print format::
 
 >>> 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
 
 Point: x= 3.000 y= 4.000 hypot= 5.000
- Point: x=14.000 y= 5.000 hypot=14.866
- Point: x= 1.286 y= 6.000 hypot= 6.136
+ Point: x=14.000 y= 0.714 hypot=14.018
 
 Another use for subclassing is to replace performance critcal methods with
 faster versions that bypass error-checking and that localize variable access::
 
 class Point(namedtuple('Point', 'x y')):
+ __slots__ = ()
 _make = classmethod(tuple.__new__)
 def _replace(self, _map=map, **kwds):
 return self._make(_map(kwds.get, ('x', 'y'), self))
Modified: python/trunk/Lib/collections.py
==============================================================================
--- python/trunk/Lib/collections.py	(original)
+++ python/trunk/Lib/collections.py	Thu Jan 10 20:15:10 2008
@@ -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))


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /