svn+ssh://pythondev@svn.python.org/python/trunk
........
r68813 | raymond.hettinger | 2009-01-20 20:34:19 +0000 (Tue, 20 Jan 2009) | 3 lines
Issue 4998: __slots__ on Fractions was useless.
........
r69546 | mark.dickinson | 2009-02-12 17:55:42 +0000 (Thu, 12 Feb 2009) | 2 lines
Typo fix.
........
caring what kind, use isinstance(x, Number).
"""
__metaclass__ = ABCMeta
+ __slots__ = ()
# Concrete numeric types must provide their own hash implementation
__hash__ = None
type as described below.
"""
+ __slots__ = ()
+
@abstractmethod
def __complex__(self):
"""Return a builtin complex instance. Called for complex(self)."""
Real also provides defaults for the derived operations.
"""
+ __slots__ = ()
+
@abstractmethod
def __float__(self):
"""Any Real can be converted to a native float object.
class Rational(Real):
""".numerator and .denominator should be in lowest terms."""
+ __slots__ = ()
+
@abstractproperty
def numerator(self):
raise NotImplementedError
class Integral(Rational):
"""Integral adds a conversion to long and the bit-string operations."""
+ __slots__ = ()
+
@abstractmethod
def __long__(self):
"""long(self)"""
self.assertEqual(id(r), id(copy(r)))
self.assertEqual(id(r), id(deepcopy(r)))
+ def test_slots(self):
+ # Issue 4998
+ r = F(13, 7)
+ self.assertRaises(AttributeError, setattr, r, 'a', 10)
+
def test_main():
run_unittest(FractionTest, GcdTest)
Library
-------
+- Issue #4998: The memory saving effect of __slots__ had been lost on Fractions
+ which inherited from numbers.py which did not have __slots__ defined. The
+ numbers hierarchy now has its own __slots__ declarations.
+
- Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).