mirror of https://github.com/python/cpython
Merged revisions 68813,69546 via svnmerge from
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. ........
This commit is contained in:
parent
293afb8cc9
commit
a84f265c36
|
@ -17,6 +17,7 @@ class Number(object):
|
||||||
caring what kind, use isinstance(x, Number).
|
caring what kind, use isinstance(x, Number).
|
||||||
"""
|
"""
|
||||||
__metaclass__ = ABCMeta
|
__metaclass__ = ABCMeta
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
# Concrete numeric types must provide their own hash implementation
|
# Concrete numeric types must provide their own hash implementation
|
||||||
__hash__ = None
|
__hash__ = None
|
||||||
|
@ -41,6 +42,8 @@ class Complex(Number):
|
||||||
type as described below.
|
type as described below.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __complex__(self):
|
def __complex__(self):
|
||||||
"""Return a builtin complex instance. Called for complex(self)."""
|
"""Return a builtin complex instance. Called for complex(self)."""
|
||||||
|
@ -172,6 +175,8 @@ class Real(Complex):
|
||||||
Real also provides defaults for the derived operations.
|
Real also provides defaults for the derived operations.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __float__(self):
|
def __float__(self):
|
||||||
"""Any Real can be converted to a native float object.
|
"""Any Real can be converted to a native float object.
|
||||||
|
@ -265,6 +270,8 @@ Real.register(float)
|
||||||
class Rational(Real):
|
class Rational(Real):
|
||||||
""".numerator and .denominator should be in lowest terms."""
|
""".numerator and .denominator should be in lowest terms."""
|
||||||
|
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
@abstractproperty
|
@abstractproperty
|
||||||
def numerator(self):
|
def numerator(self):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
@ -288,6 +295,8 @@ class Rational(Real):
|
||||||
class Integral(Rational):
|
class Integral(Rational):
|
||||||
"""Integral adds a conversion to long and the bit-string operations."""
|
"""Integral adds a conversion to long and the bit-string operations."""
|
||||||
|
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __long__(self):
|
def __long__(self):
|
||||||
"""long(self)"""
|
"""long(self)"""
|
||||||
|
|
|
@ -394,6 +394,11 @@ class FractionTest(unittest.TestCase):
|
||||||
self.assertEqual(id(r), id(copy(r)))
|
self.assertEqual(id(r), id(copy(r)))
|
||||||
self.assertEqual(id(r), id(deepcopy(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():
|
def test_main():
|
||||||
run_unittest(FractionTest, GcdTest)
|
run_unittest(FractionTest, GcdTest)
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,10 @@ Core and Builtins
|
||||||
Library
|
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
|
- Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
|
||||||
function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).
|
function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue