Clean-up and speed-up code by accessing numerator/denominator directly. There's no reason to enforce readonliness

This commit is contained in:
Raymond Hettinger 2008-01-24 18:05:54 +00:00
parent 37edeab778
commit 7a6eacd2ca
1 changed files with 3 additions and 11 deletions

View File

@ -94,7 +94,7 @@ class Rational(RationalAbc):
"""
__slots__ = ('_numerator', '_denominator')
__slots__ = ('numerator', 'denominator')
# We're immutable, so use __new__ not __init__
def __new__(cls, numerator=0, denominator=1):
@ -134,8 +134,8 @@ class Rational(RationalAbc):
raise ZeroDivisionError('Rational(%s, 0)' % numerator)
g = _gcd(numerator, denominator)
self._numerator = int(numerator // g)
self._denominator = int(denominator // g)
self.numerator = int(numerator // g)
self.denominator = int(denominator // g)
return self
@classmethod
@ -208,14 +208,6 @@ class Rational(RationalAbc):
result = new
return result
@property
def numerator(a):
return a._numerator
@property
def denominator(a):
return a._denominator
def __repr__(self):
"""repr(self)"""
return ('Rational(%r,%r)' % (self.numerator, self.denominator))