mirror of
https://github.com/python/cpython.git
synced 2025-11-24 12:20:42 +00:00
gh-122450: Expand documentation for `Rational and Fraction` (#136800)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
506542b596
commit
b266fbc9ec
3 changed files with 18 additions and 8 deletions
|
|
@ -14,8 +14,8 @@
|
||||||
The :mod:`fractions` module provides support for rational number arithmetic.
|
The :mod:`fractions` module provides support for rational number arithmetic.
|
||||||
|
|
||||||
|
|
||||||
A Fraction instance can be constructed from a pair of integers, from
|
A Fraction instance can be constructed from a pair of rational numbers, from
|
||||||
another rational number, or from a string.
|
a single number, or from a string.
|
||||||
|
|
||||||
.. index:: single: as_integer_ratio()
|
.. index:: single: as_integer_ratio()
|
||||||
|
|
||||||
|
|
@ -25,8 +25,8 @@ another rational number, or from a string.
|
||||||
|
|
||||||
The first version requires that *numerator* and *denominator* are instances
|
The first version requires that *numerator* and *denominator* are instances
|
||||||
of :class:`numbers.Rational` and returns a new :class:`Fraction` instance
|
of :class:`numbers.Rational` and returns a new :class:`Fraction` instance
|
||||||
with value equal to ``numerator/denominator`` where the denominator is positive.
|
with a value equal to ``numerator/denominator``.
|
||||||
If *denominator* is ``0``, it raises a :exc:`ZeroDivisionError`.
|
If *denominator* is zero, it raises a :exc:`ZeroDivisionError`.
|
||||||
|
|
||||||
The second version requires that *number* is an instance of
|
The second version requires that *number* is an instance of
|
||||||
:class:`numbers.Rational` or has the :meth:`!as_integer_ratio` method
|
:class:`numbers.Rational` or has the :meth:`!as_integer_ratio` method
|
||||||
|
|
@ -125,7 +125,8 @@ another rational number, or from a string.
|
||||||
|
|
||||||
.. attribute:: denominator
|
.. attribute:: denominator
|
||||||
|
|
||||||
Denominator of the Fraction in lowest term.
|
Denominator of the Fraction in lowest terms.
|
||||||
|
Guaranteed to be positive.
|
||||||
|
|
||||||
|
|
||||||
.. method:: as_integer_ratio()
|
.. method:: as_integer_ratio()
|
||||||
|
|
|
||||||
|
|
@ -69,11 +69,11 @@ The numeric tower
|
||||||
|
|
||||||
.. attribute:: numerator
|
.. attribute:: numerator
|
||||||
|
|
||||||
Abstract.
|
Abstract. The numerator of this rational number.
|
||||||
|
|
||||||
.. attribute:: denominator
|
.. attribute:: denominator
|
||||||
|
|
||||||
Abstract.
|
Abstract. The denominator of this rational number.
|
||||||
|
|
||||||
|
|
||||||
.. class:: Integral
|
.. class:: Integral
|
||||||
|
|
|
||||||
|
|
@ -290,18 +290,27 @@ Real.register(float)
|
||||||
|
|
||||||
|
|
||||||
class Rational(Real):
|
class Rational(Real):
|
||||||
""".numerator and .denominator should be in lowest terms."""
|
"""To Real, Rational adds numerator and denominator properties.
|
||||||
|
|
||||||
|
The numerator and denominator values should be in lowest terms,
|
||||||
|
with a positive denominator.
|
||||||
|
"""
|
||||||
|
|
||||||
__slots__ = ()
|
__slots__ = ()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def numerator(self):
|
def numerator(self):
|
||||||
|
"""The numerator of a rational number in lowest terms."""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def denominator(self):
|
def denominator(self):
|
||||||
|
"""The denominator of a rational number in lowest terms.
|
||||||
|
|
||||||
|
This denominator should be positive.
|
||||||
|
"""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
# Concrete implementation of Real's conversion to float.
|
# Concrete implementation of Real's conversion to float.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue