diff options
Diffstat (limited to 'Lib/rational.py')
| -rwxr-xr-x | Lib/rational.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Lib/rational.py b/Lib/rational.py index 2222045..bc2259b 100755 --- a/Lib/rational.py +++ b/Lib/rational.py @@ -43,7 +43,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): @@ -93,8 +93,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 @@ -168,6 +168,14 @@ 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)) |
