]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-122450: Expand documentation for ``Rational`` and ``Fraction`` (GH-136800...
authorSergey B Kirpichev <skirpichev@gmail.com>
Tue, 7 Oct 2025 18:15:22 +0000 (21:15 +0300)
committerGitHub <noreply@github.com>
Tue, 7 Oct 2025 18:15:22 +0000 (19:15 +0100)
(cherry picked from commit b266fbc9ecd25d08ab572ecb91913e86b6ddc75e)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Doc/library/fractions.rst
Doc/library/numbers.rst
Lib/numbers.py

index 392b6d40e861fbdd9dae860b1a47748560c5e59c..d6d1c7a461c51cd953785d212e10eeae5ecba083 100644 (file)
@@ -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()
index 681d0b76f2a14b70520ba84324a8b06eab74c074..57b35017072c97eabcda93633f2a44cf9d31884f 100644 (file)
@@ -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
index a2913e32cfada76634c2dafaafaccd7e66d64314..37fddb8917727b6b79216e7941c01d3ade7d1a65 100644 (file)
@@ -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.