mirror of
https://github.com/python/cpython.git
synced 2025-11-24 20:30:18 +00:00
[3.14] gh-122450: Expand documentation for `Rational and Fraction` (GH-136800) (#137363)
(cherry picked from commit b266fbc9ec)
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
134586aaf3
commit
058c2770a2
3 changed files with 18 additions and 8 deletions
|
|
@ -14,8 +14,8 @@
|
|||
The :mod:`fractions` module provides support for rational number arithmetic.
|
||||
|
||||
|
||||
A Fraction instance can be constructed from a pair of integers, from
|
||||
another rational number, or from a string.
|
||||
A Fraction instance can be constructed from a pair of rational numbers, from
|
||||
a single number, or from a string.
|
||||
|
||||
.. 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
|
||||
of :class:`numbers.Rational` and returns a new :class:`Fraction` instance
|
||||
with value ``numerator/denominator``. If *denominator* is ``0``, it
|
||||
raises a :exc:`ZeroDivisionError`.
|
||||
with a value equal to ``numerator/denominator``.
|
||||
If *denominator* is zero, it raises a :exc:`ZeroDivisionError`.
|
||||
|
||||
The second version requires that *number* is an instance of
|
||||
:class:`numbers.Rational` or has the :meth:`!as_integer_ratio` method
|
||||
|
|
@ -125,7 +125,8 @@ another rational number, or from a string.
|
|||
|
||||
.. attribute:: denominator
|
||||
|
||||
Denominator of the Fraction in lowest term.
|
||||
Denominator of the Fraction in lowest terms.
|
||||
Guaranteed to be positive.
|
||||
|
||||
|
||||
.. method:: as_integer_ratio()
|
||||
|
|
|
|||
|
|
@ -69,11 +69,11 @@ The numeric tower
|
|||
|
||||
.. attribute:: numerator
|
||||
|
||||
Abstract.
|
||||
Abstract. The numerator of this rational number.
|
||||
|
||||
.. attribute:: denominator
|
||||
|
||||
Abstract.
|
||||
Abstract. The denominator of this rational number.
|
||||
|
||||
|
||||
.. class:: Integral
|
||||
|
|
|
|||
|
|
@ -290,18 +290,27 @@ Real.register(float)
|
|||
|
||||
|
||||
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__ = ()
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def numerator(self):
|
||||
"""The numerator of a rational number in lowest terms."""
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def denominator(self):
|
||||
"""The denominator of a rational number in lowest terms.
|
||||
|
||||
This denominator should be positive.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
# Concrete implementation of Real's conversion to float.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue